diff options
author | 2018-05-11 10:13:42 +0000 | |
---|---|---|
committer | 2018-05-11 10:13:42 +0000 | |
commit | 85ec63532fa87f4b5805a65a2e6f2807fa00e51a (patch) | |
tree | 93559b8dd8ea895d406ca0711c3aa42129a96f01 | |
parent | 34a06b86bd6d35133e0a3cd1f44ce8cde709c70e (diff) | |
parent | a55a59a4f5102c54a08aae0e2e3d38a5095666e1 (diff) |
Merge "Move registration of AssetManager.mObject to zygote." into pi-dev
-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); } |