From 58cf8e3ffa23752f4e8e38cab4d89f9b44f9e57a Mon Sep 17 00:00:00 2001 From: Bernie Innocenti <codewiz@google.com> Date: Sat, 19 Dec 2020 15:31:52 +0900 Subject: [PATCH] Add explicit Result::ok() checks where needed Test: m checkbuild continuous_instrumentation_tests continuous_instrumentation_tests_api_coverage continuous_native_tests device-tests platform_tests Exempt-From-Owner-Approval: mechanical mass refactoring Change-Id: I3117833c51cdb333cccdfd159d1582f2adef77db --- cmds/idmap2/idmap2/Lookup.cpp | 4 ++-- cmds/idmap2/libidmap2/XmlParser.cpp | 2 +- libs/androidfw/AssetManager2.cpp | 2 +- libs/androidfw/ResourceTypes.cpp | 4 ++-- libs/androidfw/ResourceUtils.cpp | 12 ++++++++---- tools/aapt2/util/Util.cpp | 4 ++-- 6 files changed, 16 insertions(+), 12 deletions(-) diff --git a/cmds/idmap2/idmap2/Lookup.cpp b/cmds/idmap2/idmap2/Lookup.cpp index 8323d0ba2415..437180d3d1be 100644 --- a/cmds/idmap2/idmap2/Lookup.cpp +++ b/cmds/idmap2/idmap2/Lookup.cpp @@ -71,7 +71,7 @@ Result<ResourceId> WARN_UNUSED ParseResReference(const AssetManager2& am, const } // next, try to parse as a package:type/name string - if (auto resid = am.GetResourceId(res, "", fallback_package)) { + if (auto resid = am.GetResourceId(res, "", fallback_package); resid.ok()) { return *resid; } @@ -94,7 +94,7 @@ void PrintValue(AssetManager2* const am, const AssetManager2::SelectedValue& val case Res_value::TYPE_STRING: { const ResStringPool* pool = am->GetStringPoolForCookie(value.cookie); out->append("\""); - if (auto str = pool->string8ObjectAt(value.data)) { + if (auto str = pool->string8ObjectAt(value.data); str.ok()) { out->append(*str); } } break; diff --git a/cmds/idmap2/libidmap2/XmlParser.cpp b/cmds/idmap2/libidmap2/XmlParser.cpp index 7c55b64566f2..4030b83b3a41 100644 --- a/cmds/idmap2/libidmap2/XmlParser.cpp +++ b/cmds/idmap2/libidmap2/XmlParser.cpp @@ -98,7 +98,7 @@ Result<std::string> XmlParser::Node::GetAttributeStringValue(const std::string& switch ((*value).dataType) { case Res_value::TYPE_STRING: { - if (auto str = parser_.getStrings().string8ObjectAt((*value).data)) { + if (auto str = parser_.getStrings().string8ObjectAt((*value).data); str.ok()) { return std::string(str->string()); } break; diff --git a/libs/androidfw/AssetManager2.cpp b/libs/androidfw/AssetManager2.cpp index a545b3d5e134..bec80a7d605e 100644 --- a/libs/androidfw/AssetManager2.cpp +++ b/libs/androidfw/AssetManager2.cpp @@ -670,7 +670,7 @@ base::expected<FindEntryResult, NullOrIOError> AssetManager2::FindEntryInternal( } auto entry_flags = type_spec->GetFlagsForEntryIndex(entry_idx); - if (UNLIKELY(!entry_flags)) { + if (UNLIKELY(!entry_flags.has_value())) { return base::unexpected(entry_flags.error()); } type_flags |= entry_flags.value(); diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp index 4010e4e10317..bce70e2aae9e 100644 --- a/libs/androidfw/ResourceTypes.cpp +++ b/libs/androidfw/ResourceTypes.cpp @@ -897,12 +897,12 @@ base::expected<StringPiece, NullOrIOError> ResStringPool::string8At(size_t idx) // Decode the UTF-16 length. This is not used if we're not // converting to UTF-16 from UTF-8. const base::expected<size_t, IOError> u16len = decodeLength(&str); - if (UNLIKELY(!u16len)) { + if (UNLIKELY(!u16len.has_value())) { return base::unexpected(u16len.error()); } const base::expected<size_t, IOError> u8len = decodeLength(&str); - if (UNLIKELY(!u8len)) { + if (UNLIKELY(!u8len.has_value())) { return base::unexpected(u8len.error()); } diff --git a/libs/androidfw/ResourceUtils.cpp b/libs/androidfw/ResourceUtils.cpp index a34aa7239250..87fb2c038c9f 100644 --- a/libs/androidfw/ResourceUtils.cpp +++ b/libs/androidfw/ResourceUtils.cpp @@ -56,7 +56,8 @@ base::expected<AssetManager2::ResourceName, NullOrIOError> ToResourceName( .package_len = package_name.size(), }; - if (base::expected<StringPiece, NullOrIOError> type_str = type_string_ref.string8()) { + if (base::expected<StringPiece, NullOrIOError> type_str = type_string_ref.string8(); + type_str.ok()) { name.type = type_str->data(); name.type_len = type_str->size(); } else if (UNLIKELY(IsIOError(type_str))) { @@ -64,7 +65,8 @@ base::expected<AssetManager2::ResourceName, NullOrIOError> ToResourceName( } if (name.type == nullptr) { - if (base::expected<StringPiece16, NullOrIOError> type16_str = type_string_ref.string16()) { + if (base::expected<StringPiece16, NullOrIOError> type16_str = type_string_ref.string16(); + type16_str.ok()) { name.type16 = type16_str->data(); name.type_len = type16_str->size(); } else if (!type16_str.has_value()) { @@ -72,7 +74,8 @@ base::expected<AssetManager2::ResourceName, NullOrIOError> ToResourceName( } } - if (base::expected<StringPiece, NullOrIOError> entry_str = entry_string_ref.string8()) { + if (base::expected<StringPiece, NullOrIOError> entry_str = entry_string_ref.string8(); + entry_str.ok()) { name.entry = entry_str->data(); name.entry_len = entry_str->size(); } else if (UNLIKELY(IsIOError(entry_str))) { @@ -80,7 +83,8 @@ base::expected<AssetManager2::ResourceName, NullOrIOError> ToResourceName( } if (name.entry == nullptr) { - if (base::expected<StringPiece16, NullOrIOError> entry16_str = entry_string_ref.string16()) { + if (base::expected<StringPiece16, NullOrIOError> entry16_str = entry_string_ref.string16(); + entry16_str.ok()) { name.entry16 = entry16_str->data(); name.entry_len = entry16_str->size(); } else if (!entry16_str.has_value()) { diff --git a/tools/aapt2/util/Util.cpp b/tools/aapt2/util/Util.cpp index ef33c3463a81..793a2368526b 100644 --- a/tools/aapt2/util/Util.cpp +++ b/tools/aapt2/util/Util.cpp @@ -531,14 +531,14 @@ bool ExtractResFilePathParts(const StringPiece& path, StringPiece* out_prefix, } StringPiece16 GetString16(const android::ResStringPool& pool, size_t idx) { - if (auto str = pool.stringAt(idx)) { + if (auto str = pool.stringAt(idx); str.ok()) { return *str; } return StringPiece16(); } std::string GetString(const android::ResStringPool& pool, size_t idx) { - if (auto str = pool.string8At(idx)) { + if (auto str = pool.string8At(idx); str.ok()) { return ModifiedUtf8ToUtf8(str->to_string()); } return Utf16ToUtf8(GetString16(pool, idx)); -- GitLab