summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--media/jni/soundpool/android_media_SoundPool.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/media/jni/soundpool/android_media_SoundPool.cpp b/media/jni/soundpool/android_media_SoundPool.cpp
index f6ea916..f0677a6 100644
--- a/media/jni/soundpool/android_media_SoundPool.cpp
+++ b/media/jni/soundpool/android_media_SoundPool.cpp
@@ -283,9 +283,13 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved)
"(Ljava/lang/Object;IIILjava/lang/Object;)V");
if (fields.mPostEvent == NULL) {
LOGE("Can't find android/media/SoundPool.postEventFromNative");
- return -1;
+ goto bail;
}
+ // create a reference to class. Technically, we're leaking this reference
+ // since it's a static object.
+ fields.mSoundPoolClass = (jclass) env->NewGlobalRef(clazz);
+
if (AndroidRuntime::registerNativeMethods(env, kClassPathName, gMethods, NELEM(gMethods)) < 0)
goto bail;