diff options
author | Glenn Kasten <gkasten@google.com> | 2012-01-27 18:08:45 -0800 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2012-01-27 18:08:45 -0800 |
commit | e9dd0176933d6233916c84e18f3e8c0d644ca05d (patch) | |
tree | 456651a5f40cbd404d39abb20604817324926db3 | |
parent | fd267d7cf640225bb57f0ed1af44efc153275f6d (diff) | |
download | frameworks_av-e9dd0176933d6233916c84e18f3e8c0d644ca05d.zip frameworks_av-e9dd0176933d6233916c84e18f3e8c0d644ca05d.tar.gz frameworks_av-e9dd0176933d6233916c84e18f3e8c0d644ca05d.tar.bz2 |
Unconditional delete
Don't check that pointer is non-NULL before delete.
Don't leave deleted member fields non-NULL, except in a destructor,
since it could be misleading in a dump or debugger. (mRsmpOutBuffer)
Change-Id: Ic0492a6b752f74a67f4c96dfb89ca2de4e69eecf
-rw-r--r-- | services/audioflinger/AudioFlinger.cpp | 18 | ||||
-rw-r--r-- | services/audioflinger/AudioMixer.cpp | 4 | ||||
-rw-r--r-- | services/audioflinger/AudioPolicyService.cpp | 5 |
3 files changed, 13 insertions, 14 deletions
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp index 2d856ad..21b9bd6 100644 --- a/services/audioflinger/AudioFlinger.cpp +++ b/services/audioflinger/AudioFlinger.cpp @@ -1740,7 +1740,7 @@ void AudioFlinger::PlaybackThread::readOutputParameters() // FIXME - Current mixer implementation only supports stereo output: Always // Allocate a stereo buffer even if HW output is mono. - if (mMixBuffer != NULL) delete[] mMixBuffer; + delete[] mMixBuffer; mMixBuffer = new int16_t[mFrameCount * 2]; memset(mMixBuffer, 0, mFrameCount * 2 * sizeof(int16_t)); @@ -2461,6 +2461,8 @@ bool AudioFlinger::MixerThread::checkForNewParameters_l() } if (status == NO_ERROR && reconfig) { delete mAudioMixer; + // for safety in case readOutputParameters() accesses mAudioMixer (it doesn't) + mAudioMixer = NULL; readOutputParameters(); mAudioMixer = new AudioMixer(mFrameCount, mSampleRate); for (size_t i = 0; i < mTracks.size() ; i++) { @@ -4282,10 +4284,8 @@ AudioFlinger::RecordThread::RecordThread(const sp<AudioFlinger>& audioFlinger, AudioFlinger::RecordThread::~RecordThread() { delete[] mRsmpInBuffer; - if (mResampler != NULL) { - delete mResampler; - delete[] mRsmpOutBuffer; - } + delete mResampler; + delete[] mRsmpOutBuffer; } void AudioFlinger::RecordThread::onFirstRef() @@ -4829,9 +4829,11 @@ void AudioFlinger::RecordThread::audioConfigChanged_l(int event, int param) { void AudioFlinger::RecordThread::readInputParameters() { - if (mRsmpInBuffer) delete mRsmpInBuffer; - if (mRsmpOutBuffer) delete mRsmpOutBuffer; - if (mResampler) delete mResampler; + delete mRsmpInBuffer; + // mRsmpInBuffer is always assigned a new[] below + delete mRsmpOutBuffer; + mRsmpOutBuffer = NULL; + delete mResampler; mResampler = NULL; mSampleRate = mInput->stream->common.get_sample_rate(&mInput->stream->common); diff --git a/services/audioflinger/AudioMixer.cpp b/services/audioflinger/AudioMixer.cpp index a8102e5..a01c6a8 100644 --- a/services/audioflinger/AudioMixer.cpp +++ b/services/audioflinger/AudioMixer.cpp @@ -1127,9 +1127,7 @@ void AudioMixer::process__TwoTracks16BitsStereoNoResampling(state_t* state) } } - if (buff != NULL) { - delete [] buff; - } + delete [] buff; } #endif diff --git a/services/audioflinger/AudioPolicyService.cpp b/services/audioflinger/AudioPolicyService.cpp index 2df1385..7695d2b 100644 --- a/services/audioflinger/AudioPolicyService.cpp +++ b/services/audioflinger/AudioPolicyService.cpp @@ -649,7 +649,7 @@ AudioPolicyService::AudioCommandThread::~AudioCommandThread() release_wake_lock(mName.string()); } mAudioCommands.clear(); - if (mpToneGenerator != NULL) delete mpToneGenerator; + delete mpToneGenerator; } void AudioPolicyService::AudioCommandThread::onFirstRef() @@ -682,8 +682,7 @@ bool AudioPolicyService::AudioCommandThread::threadLoop() ToneData *data = (ToneData *)command->mParam; ALOGV("AudioCommandThread() processing start tone %d on stream %d", data->mType, data->mStream); - if (mpToneGenerator != NULL) - delete mpToneGenerator; + delete mpToneGenerator; mpToneGenerator = new ToneGenerator(data->mStream, 1.0); mpToneGenerator->startTone(data->mType); delete data; |