diff options
author | 2018-05-10 15:00:13 +0100 | |
---|---|---|
committer | 2018-05-10 15:00:13 +0100 | |
commit | a55a59a4f5102c54a08aae0e2e3d38a5095666e1 (patch) | |
tree | 0c9c74b21f9951575807aae2f692a9fa049f9034 | |
parent | 618418af0993263c3d9ca833dfb36dd6a2c1b5aa (diff) |
Move registration of AssetManager.mObject to zygote.
bug: 73865351
Test: m
Change-Id: I9d0f0c8ae016b8823246e25bfdbff0d4fd8eaae1
-rw-r--r-- | core/jni/android_util_AssetManager.cpp | 5 | ||||
-rw-r--r-- | core/jni/include/android_runtime/android_util_AssetManager.h | 5 | ||||
-rw-r--r-- | native/android/asset_manager.cpp | 22 |
3 files changed, 7 insertions, 25 deletions
diff --git a/core/jni/android_util_AssetManager.cpp b/core/jni/android_util_AssetManager.cpp index 7fa224757fd2..fa9f44557d3f 100644 --- a/core/jni/android_util_AssetManager.cpp +++ b/core/jni/android_util_AssetManager.cpp @@ -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; diff --git a/core/jni/include/android_runtime/android_util_AssetManager.h b/core/jni/include/android_runtime/android_util_AssetManager.h index 2c1e3579eb92..ac734a908bed 100644 --- a/core/jni/include/android_runtime/android_util_AssetManager.h +++ b/core/jni/include/android_runtime/android_util_AssetManager.h @@ -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 diff --git a/native/android/asset_manager.cpp b/native/android/asset_manager.cpp index e70d5ea0d566..69cf80477dde 100644 --- a/native/android/asset_manager.cpp +++ b/native/android/asset_manager.cpp @@ -56,32 +56,10 @@ 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); } |