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

Commit e89a2865 authored by Adam Lesinski's avatar Adam Lesinski Committed by Gerrit Code Review
Browse files

Merge changes If2c7e09f,Ie21f227c

* changes:
  RRO idmap: pad with 0xffffffff, not 0x00000000
  RRO: reintroduce lost ResTable insert of assets
parents acd01ff0 96198eba
Loading
Loading
Loading
Loading
+15 −1
Original line number Original line Diff line number Diff line
@@ -627,7 +627,21 @@ public final class AssetManager implements AutoCloseable {
     *
     *
     * {@hide}
     * {@hide}
     */
     */
    public native final int addOverlayPath(String idmapPath);

    public final int addOverlayPath(String idmapPath) {
        synchronized (this) {
            int res = addOverlayPathNative(idmapPath);
            makeStringBlocks(mStringBlocks);
            return res;
        }
    }

    /**
     * See addOverlayPath.
     *
     * {@hide}
     */
    public native final int addOverlayPathNative(String idmapPath);


    /**
    /**
     * Add multiple sets of assets to the asset manager at once.  See
     * Add multiple sets of assets to the asset manager at once.  See
+1 −1
Original line number Original line Diff line number Diff line
@@ -2039,7 +2039,7 @@ static JNINativeMethod gAssetManagerMethods[] = {
        (void*) android_content_AssetManager_getAssetRemainingLength },
        (void*) android_content_AssetManager_getAssetRemainingLength },
    { "addAssetPathNative", "(Ljava/lang/String;)I",
    { "addAssetPathNative", "(Ljava/lang/String;)I",
        (void*) android_content_AssetManager_addAssetPath },
        (void*) android_content_AssetManager_addAssetPath },
    { "addOverlayPath",   "(Ljava/lang/String;)I",
    { "addOverlayPathNative",   "(Ljava/lang/String;)I",
        (void*) android_content_AssetManager_addOverlayPath },
        (void*) android_content_AssetManager_addOverlayPath },
    { "isUpToDate",     "()Z",
    { "isUpToDate",     "()Z",
        (void*) android_content_AssetManager_isUpToDate },
        (void*) android_content_AssetManager_isUpToDate },
+4 −0
Original line number Original line Diff line number Diff line
@@ -302,6 +302,10 @@ bool AssetManager::addOverlayPath(const String8& packagePath, int32_t* cookie)
    mAssetPaths.add(oap);
    mAssetPaths.add(oap);
    *cookie = static_cast<int32_t>(mAssetPaths.size());
    *cookie = static_cast<int32_t>(mAssetPaths.size());


    if (mResources != NULL) {
        appendPathToResTable(oap);
    }

    return true;
    return true;
 }
 }


+5 −5
Original line number Original line Diff line number Diff line
@@ -6237,14 +6237,14 @@ status_t ResTable::createIdmap(const ResTable& overlay,
            }
            }


            if (typeMap.entryOffset + typeMap.entryMap.size() < entryIndex) {
            if (typeMap.entryOffset + typeMap.entryMap.size() < entryIndex) {
                // Resize to accomodate this entry and the 0's in between.
                // pad with 0xffffffff's (indicating non-existing entries) before adding this entry
                if (typeMap.entryMap.resize((entryIndex - typeMap.entryOffset) + 1) < 0) {
                size_t index = typeMap.entryMap.size();
                size_t numItems = entryIndex - (typeMap.entryOffset + index);
                if (typeMap.entryMap.insertAt(0xffffffff, index, numItems) < 0) {
                    return NO_MEMORY;
                    return NO_MEMORY;
                }
                }
                typeMap.entryMap.editTop() = Res_GETENTRY(overlayResID);
            } else {
                typeMap.entryMap.add(Res_GETENTRY(overlayResID));
            }
            }
            typeMap.entryMap.add(Res_GETENTRY(overlayResID));
        }
        }


        if (!typeMap.entryMap.isEmpty()) {
        if (!typeMap.entryMap.isEmpty()) {