Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 18560886 authored by Adam Lesinski's avatar Adam Lesinski
Browse files

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
parent e23a91e2
Loading
Loading
Loading
Loading
+17 −8
Original line number Diff line number Diff line
@@ -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; pgIndex<pgCount; pgIndex++) {
@@ -6215,6 +6217,13 @@ void ResTable::print(bool inclValues) const
                (int)pgIndex, pg->id, (int)pg->packages.size(),
                String8(pg->name).string());

        size_t pkgCount = pg->packages.size();
        for (size_t pkgIndex=0; pkgIndex<pkgCount; pkgIndex++) {
            const Package* pkg = pg->packages[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()) {
+0 −17
Original line number Diff line number Diff line
@@ -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);
}

}