diff options
author | Ryan Mitchell <rtmitchell@google.com> | 2021-04-21 17:44:55 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2021-04-21 17:44:55 +0000 |
commit | 31031a91f1da3e5acdc493e88d98589b5a6dce2f (patch) | |
tree | 364ecd3aba9f0b0566837153aa7a9148cbe908bb /tools/aapt2/link/TableMerger.cpp | |
parent | 991791446c1e1a5dea9f4a8e716c4237865dd64e (diff) | |
parent | efcdb95fa7cf2da7d599e0bcda250514ac5ee048 (diff) |
Merge "Aapt2 ValueTransformer" into sc-dev
Diffstat (limited to 'tools/aapt2/link/TableMerger.cpp')
-rw-r--r-- | tools/aapt2/link/TableMerger.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/tools/aapt2/link/TableMerger.cpp b/tools/aapt2/link/TableMerger.cpp index 4ef2882ce347..bc93ec6908e7 100644 --- a/tools/aapt2/link/TableMerger.cpp +++ b/tools/aapt2/link/TableMerger.cpp @@ -280,13 +280,13 @@ bool TableMerger::DoMerge(const Source& src, ResourceTablePackage* src_package, } // Continue if we're taking the new resource. - + CloningValueTransformer cloner(&main_table_->string_pool); if (FileReference* f = ValueCast<FileReference>(src_config_value->value.get())) { std::unique_ptr<FileReference> new_file_ref; if (mangle_package) { new_file_ref = CloneAndMangleFile(src_package->name, *f); } else { - new_file_ref = std::unique_ptr<FileReference>(f->Clone(&main_table_->string_pool)); + new_file_ref = std::unique_ptr<FileReference>(f->Transform(cloner)); } dst_config_value->value = std::move(new_file_ref); @@ -294,8 +294,7 @@ bool TableMerger::DoMerge(const Source& src, ResourceTablePackage* src_package, Maybe<std::string> original_comment = (dst_config_value->value) ? dst_config_value->value->GetComment() : Maybe<std::string>(); - dst_config_value->value = std::unique_ptr<Value>( - src_config_value->value->Clone(&main_table_->string_pool)); + dst_config_value->value = src_config_value->value->Transform(cloner); // Keep the comment from the original resource and ignore all comments from overlaying // resources @@ -323,7 +322,9 @@ std::unique_ptr<FileReference> TableMerger::CloneAndMangleFile( new_file_ref->file = file_ref.file; return new_file_ref; } - return std::unique_ptr<FileReference>(file_ref.Clone(&main_table_->string_pool)); + + CloningValueTransformer cloner(&main_table_->string_pool); + return std::unique_ptr<FileReference>(file_ref.Transform(cloner)); } bool TableMerger::MergeFile(const ResourceFile& file_desc, bool overlay, io::IFile* file) { |