From aeac0d01783a3e4d57f3da5adb13f9cfc84478af Mon Sep 17 00:00:00 2001 From: Iurii Makhno Date: Tue, 22 Feb 2022 06:41:58 +0000 Subject: 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 --- tools/aapt2/ResourceParser.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'tools/aapt2/ResourceParser.cpp') 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 parsed_type = ParseResourceNamedType(maybe_type.value()); - if (!parsed_type) { + std::optional 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 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), }); -- cgit v1.2.3-59-g8ed1b