diff --git a/media/jni/audioeffect/android_media_Visualizer.cpp b/media/jni/audioeffect/android_media_Visualizer.cpp index f1a8c6fbdb29c..aec31f0479c28 100644 --- a/media/jni/audioeffect/android_media_Visualizer.cpp +++ b/media/jni/audioeffect/android_media_Visualizer.cpp @@ -435,11 +435,12 @@ setup_failure: // ---------------------------------------------------------------------------- static void android_media_visualizer_native_release(JNIEnv *env, jobject thiz) { - sp lpVisualizer = setVisualizer(env, thiz, 0); - if (lpVisualizer == 0) { - return; + { //limit scope so that lpVisualizer is deleted before JNI storage data. + sp lpVisualizer = setVisualizer(env, thiz, 0); + if (lpVisualizer == 0) { + return; + } } - // delete the JNI data VisualizerJniStorage* lpJniStorage = (VisualizerJniStorage *)env->GetLongField(thiz, fields.fidJniData);