diff options
| author | 2019-03-26 16:07:23 -0700 | |
|---|---|---|
| committer | 2019-04-24 09:59:55 +0000 | |
| commit | b435101ec8aa827375e837c4843f6444145e1f4c (patch) | |
| tree | a677f4bbe82cf0e10585dba481941e837dc7b881 /tools/aapt2/ResourceValues.cpp | |
| parent | c37d832194c9a93a720bf14d0a991377e4d4db53 (diff) | |
DO NOT MERGE: Do not allow overlaying of attributes with conflicting formats
aapt(1) does not allow for attributes to be redefined with a different
format. Also, attributes declared with enums or flags are never allowed to be
redefined. This change will not allow attributes to be redefined with a
conflicting format in aapt2.
Bug: 129146717
Test: aapt2_tests
Change-Id: Idc43d6d689199ba2cdc672d009ede22eaa75a10c
Diffstat (limited to 'tools/aapt2/ResourceValues.cpp')
| -rw-r--r-- | tools/aapt2/ResourceValues.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/tools/aapt2/ResourceValues.cpp b/tools/aapt2/ResourceValues.cpp index 34b46c552e0c..696012786e6d 100644 --- a/tools/aapt2/ResourceValues.cpp +++ b/tools/aapt2/ResourceValues.cpp @@ -574,6 +574,10 @@ bool Attribute::Equals(const Value* value) const { } bool Attribute::IsCompatibleWith(const Attribute& attr) const { + if (Equals(&attr)) { + return true; + } + // If the high bits are set on any of these attribute type masks, then they are incompatible. // We don't check that flags and enums are identical. if ((type_mask & ~android::ResTable_map::TYPE_ANY) != 0 || |