Merge "Move registration of AssetManager.mObject to zygote." into pi-dev
diff --git a/core/jni/android_util_AssetManager.cpp b/core/jni/android_util_AssetManager.cpp
index 7fa2247..fa9f445 100644
--- a/core/jni/android_util_AssetManager.cpp
+++ b/core/jni/android_util_AssetManager.cpp
@@ -75,9 +75,8 @@
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 2c1e357..ac734a9 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 @@
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 e70d5ea..69cf804 100644
--- a/native/android/asset_manager.cpp
+++ b/native/android/asset_manager.cpp
@@ -56,32 +56,10 @@
// -------------------- 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);
}