diff options
-rw-r--r-- | core/jni/android_media_AudioRecord.cpp | 1 | ||||
-rw-r--r-- | core/jni/android_media_AudioTrack.cpp | 1 | ||||
-rw-r--r-- | media/jni/soundpool/SoundPool.cpp | 1 |
3 files changed, 3 insertions, 0 deletions
diff --git a/core/jni/android_media_AudioRecord.cpp b/core/jni/android_media_AudioRecord.cpp index 5928c69..6c2bbd4 100644 --- a/core/jni/android_media_AudioRecord.cpp +++ b/core/jni/android_media_AudioRecord.cpp @@ -321,6 +321,7 @@ native_init_failure: delete lpCallbackData; env->SetLongField(thiz, javaAudioRecordFields.nativeCallbackCookie, 0); + // lpRecorder goes out of scope, so reference count drops to zero return (jint) AUDIORECORD_ERROR_SETUP_NATIVEINITFAILED; } diff --git a/core/jni/android_media_AudioTrack.cpp b/core/jni/android_media_AudioTrack.cpp index 5b52a49..5faa150 100644 --- a/core/jni/android_media_AudioTrack.cpp +++ b/core/jni/android_media_AudioTrack.cpp @@ -405,6 +405,7 @@ native_init_failure: delete lpJniStorage; env->SetLongField(thiz, javaAudioTrackFields.jniData, 0); + // lpTrack goes out of scope, so reference count drops to zero return (jint) AUDIOTRACK_ERROR_SETUP_NATIVEINITFAILED; } diff --git a/media/jni/soundpool/SoundPool.cpp b/media/jni/soundpool/SoundPool.cpp index 8038cdf..a705bcc 100644 --- a/media/jni/soundpool/SoundPool.cpp +++ b/media/jni/soundpool/SoundPool.cpp @@ -753,6 +753,7 @@ void SoundChannel::play(const sp<Sample>& sample, int nextChannelID, float leftV status = newTrack->initCheck(); if (status != NO_ERROR) { ALOGE("Error creating AudioTrack"); + // newTrack goes out of scope, so reference count drops to zero goto exit; } // From now on, AudioTrack callbacks received with previous toggle value will be ignored. |