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

Commit 5bf5fb63 authored by Winson Chiu's avatar Winson Chiu Committed by android-build-merger
Browse files

Merge "Skip idmap1 generation if target defines overlayable" into qt-dev am: facddb45

am: bc324440

Change-Id: Iae68191ff306c57f9a8b0a1ce5e73c89ffffb54d
parents 9f9684c4 bc324440
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -3510,6 +3510,7 @@ struct ResTable::Package
    ResStringPool                   keyStrings;

    size_t                          typeIdOffset;
    bool                            definesOverlayable = false;
};

// A group of objects describing a particular resource package.
@@ -6861,6 +6862,10 @@ status_t ResTable::parsePackage(const ResTable_package* const pkg,
                ALOGW("Found multiple library tables, ignoring...");
            }
        } else {
            if (ctype == RES_TABLE_OVERLAYABLE_TYPE) {
                package->definesOverlayable = true;
            }

            status_t err = validate_chunk(chunk, sizeof(ResChunk_header),
                                          endPos, "ResTable_package:unknown");
            if (err != NO_ERROR) {
@@ -7138,6 +7143,11 @@ status_t ResTable::createIdmap(const ResTable& targetResTable,
        return UNKNOWN_ERROR;
    }

    // Idmap is not aware of overlayable, exit since policy checks can't be done
    if (targetResTable.mPackageGroups[0]->packages[0]->definesOverlayable) {
        return UNKNOWN_ERROR;
    }

    const ResTable_package* targetPackageStruct =
        targetResTable.mPackageGroups[0]->packages[0]->package;
    const size_t tmpNameSize = arraysize(targetPackageStruct->name);