From 18560886cbb7825c1bb034c96e5d0cd4dbdbb8ee Mon Sep 17 00:00:00 2001 From: Adam Lesinski Date: Fri, 15 Aug 2014 17:18:21 +0000 Subject: [PATCH] Revert "Fix aapt dump for APKs with no resources" This reverts commit 0e475302cd196f45a01a525c49089018b238d4ba. I'll re-upload this CL with the correct fix in LoadedApk. Change-Id: I17c6381f8e5907dab9f996f89c5d435b9c08a13a --- libs/androidfw/ResourceTypes.cpp | 25 +++++++++++++++++-------- libs/androidfw/tests/ResTable_test.cpp | 17 ----------------- 2 files changed, 17 insertions(+), 25 deletions(-) diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp index 71a7c0a42084..7661d586bcf4 100644 --- a/libs/androidfw/ResourceTypes.cpp +++ b/libs/androidfw/ResourceTypes.cpp @@ -2852,16 +2852,17 @@ struct ResTable::Type struct ResTable::Package { Package(ResTable* _owner, const Header* _header, const ResTable_package* _package) - : owner(_owner), header(_header), typeIdOffset(0) { - if (_package != NULL && dtohs(_package->header.headerSize) == sizeof(_package)) { + : owner(_owner), header(_header), package(_package), typeIdOffset(0) { + if (dtohs(package->header.headerSize) == sizeof(package)) { // The package structure is the same size as the definition. // This means it contains the typeIdOffset field. - typeIdOffset = _package->typeIdOffset; + typeIdOffset = package->typeIdOffset; } } const ResTable* const owner; const Header* const header; + const ResTable_package* const package; ResStringPool typeStrings; ResStringPool keyStrings; @@ -3360,10 +3361,6 @@ status_t ResTable::addEmpty(const int32_t cookie) { header->header = (const ResTable_header*) resHeader; mHeaders.add(header); - - PackageGroup* pg = new PackageGroup(this, String16(), 0); - pg->packages.add(new Package(this, header, NULL)); - mPackageGroups.add(pg); return (mError=NO_ERROR); } @@ -5932,7 +5929,7 @@ status_t ResTable::createIdmap(const ResTable& overlay, *outSize += 2 * sizeof(uint16_t); // overlay packages are assumed to contain only one package group - const String16 overlayPackage(overlay.mPackageGroups[0]->name); + const String16 overlayPackage(overlay.mPackageGroups[0]->packages[0]->package->name); for (size_t typeIndex = 0; typeIndex < pg->types.size(); ++typeIndex) { const TypeList& typeList = pg->types[typeIndex]; @@ -6207,6 +6204,11 @@ void ResTable::print(bool inclValues) const if (mError != 0) { printf("mError=0x%x (%s)\n", mError, strerror(mError)); } +#if 0 + char localeStr[RESTABLE_MAX_LOCALE_LEN]; + mParams.getBcp47Locale(localeStr); + printf("mParams=%s,\n" localeStr); +#endif size_t pgCount = mPackageGroups.size(); printf("Package Groups (%d)\n", (int)pgCount); for (size_t pgIndex=0; pgIndexid, (int)pg->packages.size(), String8(pg->name).string()); + size_t pkgCount = pg->packages.size(); + for (size_t pkgIndex=0; pkgIndexpackages[pkgIndex]; + printf(" Package %d id=%d name=%s\n", (int)pkgIndex, + pkg->package->id, String8(String16(pkg->package->name)).string()); + } + for (size_t typeIndex=0; typeIndex < pg->types.size(); typeIndex++) { const TypeList& typeList = pg->types[typeIndex]; if (typeList.isEmpty()) { diff --git a/libs/androidfw/tests/ResTable_test.cpp b/libs/androidfw/tests/ResTable_test.cpp index 68c228e0de72..8016a82bd248 100644 --- a/libs/androidfw/tests/ResTable_test.cpp +++ b/libs/androidfw/tests/ResTable_test.cpp @@ -195,21 +195,4 @@ TEST(ResTableTest, resourceIsOverridenWithBetterConfig) { ASSERT_EQ(uint32_t(400), val.data); } -TEST(ResTableTest, emptyTableHasSensibleDefaults) { - const int32_t expectedCookie = 1; - - ResTable table; - ASSERT_EQ(NO_ERROR, table.addEmpty(expectedCookie)); - - ASSERT_EQ(uint32_t(1), table.getTableCount()); - ASSERT_EQ(uint32_t(1), table.getBasePackageCount()); - ASSERT_EQ(expectedCookie, table.getTableCookie(0)); - - const DynamicRefTable* dynamicRefTable = table.getDynamicRefTableForCookie(expectedCookie); - ASSERT_TRUE(dynamicRefTable != NULL); - - Res_value val; - ASSERT_LT(table.getResource(base::R::integer::number1, &val, MAY_NOT_BE_BAG), 0); -} - } -- 2.11.0