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

Commit a55a59a4 authored by Nicolas Geoffray's avatar Nicolas Geoffray
Browse files

Move registration of AssetManager.mObject to zygote.

bug: 73865351
Test: m

Change-Id: I9d0f0c8ae016b8823246e25bfdbff0d4fd8eaae1
parent 618418af
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -75,9 +75,8 @@ static struct assetfiledescriptor_offsets_t {
  jfieldID mLength;
} gAssetFileDescriptorOffsets;

static struct assetmanager_offsets_t {
  jfieldID mObject;
} gAssetManagerOffsets;
// This is also used by asset_manager.cpp.
assetmanager_offsets_t gAssetManagerOffsets;

static struct {
  jfieldID native_ptr;
+5 −0
Original line number Diff line number Diff line
@@ -27,6 +27,11 @@ namespace android {
extern AAssetManager* NdkAssetManagerForJavaObject(JNIEnv* env, jobject jassetmanager);
extern Guarded<AssetManager2>* AssetManagerForJavaObject(JNIEnv* env, jobject jassetmanager);
extern Guarded<AssetManager2>* AssetManagerForNdkAssetManager(AAssetManager* assetmanager);
struct assetmanager_offsets_t
{
    jfieldID mObject;
};
extern assetmanager_offsets_t gAssetManagerOffsets;

}  // namespace android

+0 −22
Original line number Diff line number Diff line
@@ -55,33 +55,11 @@ struct AAsset {

// -------------------- Public native C API --------------------

/**
 * Supporting information
 */

static struct assetmanager_offsets_t
{
    jfieldID mObject;
} gAssetManagerOffsets;

static volatile bool gJNIConfigured = false;
static Mutex gMutex;

/**
 * Asset Manager functionality
 */
AAssetManager* AAssetManager_fromJava(JNIEnv* env, jobject assetManager)
{
    {
        Mutex::Autolock _l(gMutex);

        if (gJNIConfigured == false) {
            jclass amClass = env->FindClass("android/content/res/AssetManager");
            gAssetManagerOffsets.mObject = env->GetFieldID(amClass, "mObject", "J");
            gJNIConfigured = true;
        }
    }

    return (AAssetManager*) env->GetLongField(assetManager, gAssetManagerOffsets.mObject);
}