summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mark Punzalan <markpun@google.com> 2024-11-12 14:42:44 -0800
committer Mark Punzalan <markpun@google.com> 2024-11-12 14:42:44 -0800
commit0b6c39f49ec66332279b9d37dbb0a567505527f4 (patch)
tree9b156bb4d6b45cd41df4db3609089640fa557da5
parentec52d614a6b6fa49d5d2c282835e4a7203fc119c (diff)
Consider flags when merging with overlay semantics
Bug: 376590133 Flag: EXEMPT Aconfig not supported on host tools Test: Build+flash+boot Test: Build passes with changes attached to the bug Change-Id: Icb2f20372bb28627058e6eb918d91226f66207ff
-rw-r--r--tools/aapt2/link/TableMerger.cpp15
1 files changed, 7 insertions, 8 deletions
diff --git a/tools/aapt2/link/TableMerger.cpp b/tools/aapt2/link/TableMerger.cpp
index 1bef5f8b17f6..1d4adc4a57d8 100644
--- a/tools/aapt2/link/TableMerger.cpp
+++ b/tools/aapt2/link/TableMerger.cpp
@@ -207,14 +207,13 @@ static ResourceTable::CollisionResult MergeConfigValue(
Value* dst_value = dst_config_value->value.get();
Value* src_value = src_config_value->value.get();
- CollisionResult collision_result;
- if (overlay) {
- collision_result =
- ResolveMergeCollision(override_styles_instead_of_overlaying, dst_value, src_value, pool);
- } else {
- collision_result =
- ResourceTable::ResolveFlagCollision(dst_value->GetFlagStatus(), src_value->GetFlagStatus());
- if (collision_result == CollisionResult::kConflict) {
+ CollisionResult collision_result =
+ ResourceTable::ResolveFlagCollision(dst_value->GetFlagStatus(), src_value->GetFlagStatus());
+ if (collision_result == CollisionResult::kConflict) {
+ if (overlay) {
+ collision_result =
+ ResolveMergeCollision(override_styles_instead_of_overlaying, dst_value, src_value, pool);
+ } else {
collision_result = ResourceTable::ResolveValueCollision(dst_value, src_value);
}
}