summaryrefslogtreecommitdiff
path: root/tools/aapt2/ResourceParser.cpp
diff options
context:
space:
mode:
author Iurii Makhno <iuriimak@google.com> 2022-02-22 06:41:58 +0000
committer Iurii Makhno <iuriimak@google.com> 2022-02-25 18:15:33 +0000
commitaeac0d01783a3e4d57f3da5adb13f9cfc84478af (patch)
tree90c106f5b9c18bd7faee23961d049be4b644d393 /tools/aapt2/ResourceParser.cpp
parent66022d568070da1ab55cb91aa3214aab825e1b66 (diff)
Refactor a couple of places to ensure ResourceNamedTypeRef is valid when
used. DD: go/custom-resource-types-in-aapt2 Bug: b/215108200 Test: existing Change-Id: I7d16ca83f1f22d62f32792a24d3e0ebb88c2679c
Diffstat (limited to 'tools/aapt2/ResourceParser.cpp')
-rw-r--r--tools/aapt2/ResourceParser.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/tools/aapt2/ResourceParser.cpp b/tools/aapt2/ResourceParser.cpp
index 42715f9c3592..49784e3a3491 100644
--- a/tools/aapt2/ResourceParser.cpp
+++ b/tools/aapt2/ResourceParser.cpp
@@ -981,12 +981,14 @@ bool static ParseGroupImpl(xml::XmlPullParser* parser, ParsedResource* out_resou
return false;
}
- std::optional<ResourceNamedTypeRef> parsed_type = ParseResourceNamedType(maybe_type.value());
- if (!parsed_type) {
+ std::optional<ResourceNamedTypeRef> maybe_parsed_type =
+ ParseResourceNamedType(maybe_type.value());
+ if (!maybe_parsed_type) {
diag->Error(DiagMessage(out_resource->source)
<< "invalid resource type '" << maybe_type.value() << "' in <" << tag_name << ">");
return false;
}
+ auto parsed_type = maybe_parsed_type->ToResourceNamedType();
std::optional<StringPiece> maybe_id_str = xml::FindNonEmptyAttribute(parser, "first-id");
if (!maybe_id_str) {
@@ -1039,7 +1041,7 @@ bool static ParseGroupImpl(xml::XmlPullParser* parser, ParsedResource* out_resou
}
ParsedResource& entry_res = out_resource->child_resources.emplace_back(ParsedResource{
- .name = ResourceName{{}, *parsed_type, maybe_name.value().to_string()},
+ .name = ResourceName{{}, parsed_type, maybe_name.value().to_string()},
.source = item_source,
.comment = std::move(comment),
});