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

Commit 8b4b8c5b authored by Nicolas Geoffray's avatar Nicolas Geoffray Committed by android-build-merger
Browse files

Merge "Move registration of AssetManager.mObject to zygote." into pi-dev am: 85ec6353

am: 5652b43c

Change-Id: I55960d3184c1959b1ac7a09930050d8d9acae1c0
parents 7257f729 5652b43c
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);
}