Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2589cf9c authored by Glenn Kasten's avatar Glenn Kasten
Browse files

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
parent cf0c7d10
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -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,11 +4284,9 @@ AudioFlinger::RecordThread::RecordThread(const sp<AudioFlinger>& audioFlinger,
AudioFlinger::RecordThread::~RecordThread()
{
    delete[] mRsmpInBuffer;
    if (mResampler != NULL) {
    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);
+1 −3
Original line number Diff line number Diff line
@@ -1127,10 +1127,8 @@ void AudioMixer::process__TwoTracks16BitsStereoNoResampling(state_t* state)
        }
    }

    if (buff != NULL) {
    delete [] buff;
}
}
#endif

// ----------------------------------------------------------------------------
+2 −3
Original line number Diff line number Diff line
@@ -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,7 +682,6 @@ 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;
                    mpToneGenerator = new ToneGenerator(data->mStream, 1.0);
                    mpToneGenerator->startTone(data->mType);