From db7f4632cb8a69a17bb1cbba82ed03ba36591e88 Mon Sep 17 00:00:00 2001 From: Glenn Kasten Date: Mon, 27 Sep 2010 08:37:09 -0700 Subject: [PATCH] Initialize mEffects if audio player partly created See https://android-git.corp.google.com/g/70088 File opensles/libopensles/android_AudioPlayer.cpp Line 1111: if (NULL != pAudioPlayer->mAndroidEffect.mEffects) { mAndroidEffect.mEffects is not initialized to NULL. Change-Id: Ic6b952748c7a8024c797d7bec4a26cb138fa8840 --- opensles/libopensles/IAndroidEffect.c | 4 +++- opensles/libopensles/IAndroidEffectCapabilities.c | 3 +++ opensles/libopensles/android_AudioPlayer.cpp | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/opensles/libopensles/IAndroidEffect.c b/opensles/libopensles/IAndroidEffect.c index b15abc1c..c1900f4c 100644 --- a/opensles/libopensles/IAndroidEffect.c +++ b/opensles/libopensles/IAndroidEffect.c @@ -108,5 +108,7 @@ void IAndroidEffect_init(void *self) IAndroidEffect *this = (IAndroidEffect *) self; this->mItf = &IAndroidEffect_Itf; - // mEffects lifecycle is handled by the object on which SLAndroidEffect is exposed + // mEffects lifecycle is handled by the object on which SLAndroidEffect is exposed. This is a + // safety initialization just in case the object is partially constructed and then destroyed. + this->mEffects = NULL; } diff --git a/opensles/libopensles/IAndroidEffectCapabilities.c b/opensles/libopensles/IAndroidEffectCapabilities.c index 05f9510c..85fdd004 100644 --- a/opensles/libopensles/IAndroidEffectCapabilities.c +++ b/opensles/libopensles/IAndroidEffectCapabilities.c @@ -111,6 +111,9 @@ void IAndroidEffectCapabilities_init(void *self) this->mFxDescriptors[i].name); } } + } else { + // for safety + this->mFxDescriptors = NULL; } } diff --git a/opensles/libopensles/android_AudioPlayer.cpp b/opensles/libopensles/android_AudioPlayer.cpp index ad79abd7..a0080d43 100644 --- a/opensles/libopensles/android_AudioPlayer.cpp +++ b/opensles/libopensles/android_AudioPlayer.cpp @@ -1134,6 +1134,7 @@ SLresult android_audioPlayer_destroy(CAudioPlayer *pAudioPlayer) { pAudioPlayer->mAndroidEffect.mEffects->clear(); } delete pAudioPlayer->mAndroidEffect.mEffects; + pAudioPlayer->mAndroidEffect.mEffects = NULL; } #endif -- 2.11.0