diff options
author | Brian Carlstrom <bdc@google.com> | 2011-04-05 22:44:45 -0700 |
---|---|---|
committer | Brian Carlstrom <bdc@google.com> | 2011-04-06 10:04:20 -0700 |
commit | 46e18c11d46a2bc1a46174f963d0ed1224d94cd2 (patch) | |
tree | 266818e339e08cea909f21b9af492f5ffc83079d /core/jni/android_media_AudioRecord.cpp | |
parent | 14faa3bd8bd6d1deab63a40ad2f8b6e451a16208 (diff) | |
download | frameworks_base-46e18c11d46a2bc1a46174f963d0ed1224d94cd2.zip frameworks_base-46e18c11d46a2bc1a46174f963d0ed1224d94cd2.tar.gz frameworks_base-46e18c11d46a2bc1a46174f963d0ed1224d94cd2.tar.bz2 |
Don't use local ref for cached jclass reference in JNI code
Change-Id: Id45b2acb358a819f2fd332e99f3a095f6fc7299b
related-to-bug: 4241138
Diffstat (limited to 'core/jni/android_media_AudioRecord.cpp')
-rw-r--r-- | core/jni/android_media_AudioRecord.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/core/jni/android_media_AudioRecord.cpp b/core/jni/android_media_AudioRecord.cpp index b6619ab..1b6b24f 100644 --- a/core/jni/android_media_AudioRecord.cpp +++ b/core/jni/android_media_AudioRecord.cpp @@ -41,7 +41,6 @@ static const char* const kClassPathName = "android/media/AudioRecord"; struct fields_t { // these fields provide access from C++ to the... - jclass audioRecordClass; //... AudioRecord class jmethodID postNativeEventInJava; //... event post callback method int PCM16; //... format constants int PCM8; //... format constants @@ -520,22 +519,20 @@ extern bool android_media_getIntConstantFromClass(JNIEnv* pEnv, // ---------------------------------------------------------------------------- int register_android_media_AudioRecord(JNIEnv *env) { - javaAudioRecordFields.audioRecordClass = NULL; javaAudioRecordFields.postNativeEventInJava = NULL; javaAudioRecordFields.nativeRecorderInJavaObj = NULL; javaAudioRecordFields.nativeCallbackCookie = NULL; // Get the AudioRecord class - javaAudioRecordFields.audioRecordClass = env->FindClass(kClassPathName); - if (javaAudioRecordFields.audioRecordClass == NULL) { + jclass audioRecordClass = env->FindClass(kClassPathName); + if (audioRecordClass == NULL) { LOGE("Can't find %s", kClassPathName); return -1; } - // Get the postEvent method javaAudioRecordFields.postNativeEventInJava = env->GetStaticMethodID( - javaAudioRecordFields.audioRecordClass, + audioRecordClass, JAVA_POSTEVENT_CALLBACK_NAME, "(Ljava/lang/Object;IIILjava/lang/Object;)V"); if (javaAudioRecordFields.postNativeEventInJava == NULL) { LOGE("Can't find AudioRecord.%s", JAVA_POSTEVENT_CALLBACK_NAME); @@ -545,7 +542,7 @@ int register_android_media_AudioRecord(JNIEnv *env) // Get the variables // mNativeRecorderInJavaObj javaAudioRecordFields.nativeRecorderInJavaObj = - env->GetFieldID(javaAudioRecordFields.audioRecordClass, + env->GetFieldID(audioRecordClass, JAVA_NATIVERECORDERINJAVAOBJ_FIELD_NAME, "I"); if (javaAudioRecordFields.nativeRecorderInJavaObj == NULL) { LOGE("Can't find AudioRecord.%s", JAVA_NATIVERECORDERINJAVAOBJ_FIELD_NAME); @@ -553,7 +550,7 @@ int register_android_media_AudioRecord(JNIEnv *env) } // mNativeCallbackCookie javaAudioRecordFields.nativeCallbackCookie = env->GetFieldID( - javaAudioRecordFields.audioRecordClass, + audioRecordClass, JAVA_NATIVECALLBACKINFO_FIELD_NAME, "I"); if (javaAudioRecordFields.nativeCallbackCookie == NULL) { LOGE("Can't find AudioRecord.%s", JAVA_NATIVECALLBACKINFO_FIELD_NAME); |