diff options
Diffstat (limited to 'tools/aapt2/ResourceTable.cpp')
-rw-r--r-- | tools/aapt2/ResourceTable.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/tools/aapt2/ResourceTable.cpp b/tools/aapt2/ResourceTable.cpp index a1e7d36d91d9..e32fb5ee22ea 100644 --- a/tools/aapt2/ResourceTable.cpp +++ b/tools/aapt2/ResourceTable.cpp @@ -62,17 +62,17 @@ ResourceTablePackage* ResourceTable::findPackageById(uint8_t id) { return nullptr; } -ResourceTablePackage* ResourceTable::createPackage(const StringPiece16& name, uint8_t id) { +ResourceTablePackage* ResourceTable::createPackage(const StringPiece16& name, Maybe<uint8_t> id) { ResourceTablePackage* package = findOrCreatePackage(name); - if (!package->id) { + if (id && !package->id) { package->id = id; return package; } - if (package->id.value() == id) { - return package; + if (id && package->id && package->id.value() != id.value()) { + return nullptr; } - return nullptr; + return package; } ResourceTablePackage* ResourceTable::findOrCreatePackage(const StringPiece16& name) { |