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

Commit 85ec6353 authored by Nicolas Geoffray's avatar Nicolas Geoffray Committed by Android (Google) Code Review
Browse files

Merge "Move registration of AssetManager.mObject to zygote." into pi-dev

parents 34a06b86 a55a59a4
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);
}