summaryrefslogtreecommitdiff
path: root/tools/aapt2/ResourceUtils.cpp
diff options
context:
space:
mode:
author Ryan Mitchell <rtmitchell@google.com> 2020-11-13 00:05:40 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2020-11-13 00:05:40 +0000
commitc234812e275368f47d798112e1de49a8aad99753 (patch)
tree2c029a88ba773fa77936dc89ccd4f6328e2ece07 /tools/aapt2/ResourceUtils.cpp
parent8f8eaec80190bc4a35851b9efbef412dd63efb70 (diff)
parent5602dc9374934a42964e0f57faa3c0aad43003e1 (diff)
Merge changes from topic "libaw-hardening"
* changes: Do not cache bag parent stack until requested Cache resolved theme values libandroidfw hardening for IncFs
Diffstat (limited to 'tools/aapt2/ResourceUtils.cpp')
-rw-r--r--tools/aapt2/ResourceUtils.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/tools/aapt2/ResourceUtils.cpp b/tools/aapt2/ResourceUtils.cpp
index 7dfc983b54ba..5b43df6f0935 100644
--- a/tools/aapt2/ResourceUtils.cpp
+++ b/tools/aapt2/ResourceUtils.cpp
@@ -751,10 +751,12 @@ std::unique_ptr<Item> ParseBinaryResValue(const ResourceType& type, const Config
switch (res_value.dataType) {
case android::Res_value::TYPE_STRING: {
const std::string str = util::GetString(src_pool, data);
- const android::ResStringPool_span* spans = src_pool.styleAt(data);
+ auto spans_result = src_pool.styleAt(data);
// Check if the string has a valid style associated with it.
- if (spans != nullptr && spans->name.index != android::ResStringPool_span::END) {
+ if (spans_result.has_value() &&
+ (*spans_result)->name.index != android::ResStringPool_span::END) {
+ const android::ResStringPool_span* spans = spans_result->unsafe_ptr();
StyleString style_str = {str};
while (spans->name.index != android::ResStringPool_span::END) {
style_str.spans.push_back(Span{util::GetString(src_pool, spans->name.index),