summaryrefslogtreecommitdiffstats
path: root/core/jni/android_media_AudioRecord.cpp
diff options
context:
space:
mode:
authorBrian Carlstrom <bdc@google.com>2011-04-05 22:44:45 -0700
committerBrian Carlstrom <bdc@google.com>2011-04-06 10:04:20 -0700
commit46e18c11d46a2bc1a46174f963d0ed1224d94cd2 (patch)
tree266818e339e08cea909f21b9af492f5ffc83079d /core/jni/android_media_AudioRecord.cpp
parent14faa3bd8bd6d1deab63a40ad2f8b6e451a16208 (diff)
downloadframeworks_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.cpp13
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);