diff options
author | Ryan Prichard <rprichard@google.com> | 2024-05-06 20:25:16 -0700 |
---|---|---|
committer | Ryan Prichard <rprichard@google.com> | 2024-05-06 20:25:16 -0700 |
commit | cbcff7405526456f64e4140bb7576de2c3a54f72 (patch) | |
tree | 93d2bea709aad7a2783b49a589368b1c66f0695f | |
parent | 8b70a2c62d33babd03848326e86a1cc719fa00ea (diff) | |
download | base-cbcff7405526456f64e4140bb7576de2c3a54f72.tar.gz |
aapt2: fix dangling reference to diag
The lambdas that ManifestFixer::BuildRules attach to XmlActionExecutor
outlive ManifestFixer::BuildRules, so they need to capture diag
by-value instead of by-reference.
Bug: 339119172
Test: aapt2_tests
Change-Id: I6b9b6a8733875247a5be12111413b45b99727e1f
-rw-r--r-- | tools/aapt2/link/ManifestFixer.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/tools/aapt2/link/ManifestFixer.cpp b/tools/aapt2/link/ManifestFixer.cpp index b56b4c455d35..57459e363868 100644 --- a/tools/aapt2/link/ManifestFixer.cpp +++ b/tools/aapt2/link/ManifestFixer.cpp @@ -441,7 +441,7 @@ bool ManifestFixer::BuildRules(xml::XmlActionExecutor* executor, android::IDiagn manifest_action.Action(AutoGenerateIsSplitRequired); manifest_action.Action(VerifyManifest); manifest_action.Action(FixCoreAppAttribute); - manifest_action.Action([&](xml::Element* el) -> bool { + manifest_action.Action([this, diag](xml::Element* el) -> bool { EnsureNamespaceIsDeclared("android", xml::kSchemaAndroid, &el->namespace_decls); if (options_.version_name_default) { @@ -504,7 +504,7 @@ bool ManifestFixer::BuildRules(xml::XmlActionExecutor* executor, android::IDiagn manifest_action["eat-comment"]; // Uses-sdk actions. - manifest_action["uses-sdk"].Action([&](xml::Element* el) -> bool { + manifest_action["uses-sdk"].Action([this](xml::Element* el) -> bool { if (options_.min_sdk_version_default && el->FindAttribute(xml::kSchemaAndroid, "minSdkVersion") == nullptr) { // There was no minSdkVersion defined and we have a default to assign. @@ -526,7 +526,7 @@ bool ManifestFixer::BuildRules(xml::XmlActionExecutor* executor, android::IDiagn // Instrumentation actions. manifest_action["instrumentation"].Action(RequiredNameIsJavaClassName); - manifest_action["instrumentation"].Action([&](xml::Element* el) -> bool { + manifest_action["instrumentation"].Action([this](xml::Element* el) -> bool { if (!options_.rename_instrumentation_target_package) { return true; } @@ -542,7 +542,7 @@ bool ManifestFixer::BuildRules(xml::XmlActionExecutor* executor, android::IDiagn manifest_action["attribution"]; manifest_action["attribution"]["inherit-from"]; manifest_action["original-package"]; - manifest_action["overlay"].Action([&](xml::Element* el) -> bool { + manifest_action["overlay"].Action([this](xml::Element* el) -> bool { if (options_.rename_overlay_target_package) { if (xml::Attribute* attr = el->FindAttribute(xml::kSchemaAndroid, "targetPackage")) { attr->value = options_.rename_overlay_target_package.value(); @@ -623,7 +623,7 @@ bool ManifestFixer::BuildRules(xml::XmlActionExecutor* executor, android::IDiagn uses_package_action["additional-certificate"]; if (options_.debug_mode) { - application_action.Action([&](xml::Element* el) -> bool { + application_action.Action([](xml::Element* el) -> bool { xml::Attribute *attr = el->FindOrCreateAttribute(xml::kSchemaAndroid, "debuggable"); attr->value = "true"; return true; |