Loading services/audioflinger/Tracks.cpp +7 −6 Original line number Diff line number Diff line Loading @@ -143,9 +143,11 @@ AudioFlinger::ThreadBase::TrackBase::TrackBase( return; } } else { // this syntax avoids calling the audio_track_cblk_t constructor twice mCblk = (audio_track_cblk_t *) new uint8_t[size]; // assume mCblk != NULL mCblk = (audio_track_cblk_t *) malloc(size); if (mCblk == NULL) { ALOGE("not enough memory for AudioTrack size=%zu", size); return; } } // construct the shared structure in-place. Loading Loading @@ -237,10 +239,9 @@ AudioFlinger::ThreadBase::TrackBase::~TrackBase() // delete the proxy before deleting the shared memory it refers to, to avoid dangling reference mServerProxy.clear(); if (mCblk != NULL) { if (mClient == 0) { delete mCblk; } else { mCblk->~audio_track_cblk_t(); // destroy our shared-structure. if (mClient == 0) { free(mCblk); } } mCblkMemory.clear(); // free the shared memory before releasing the heap it belongs to Loading Loading
services/audioflinger/Tracks.cpp +7 −6 Original line number Diff line number Diff line Loading @@ -143,9 +143,11 @@ AudioFlinger::ThreadBase::TrackBase::TrackBase( return; } } else { // this syntax avoids calling the audio_track_cblk_t constructor twice mCblk = (audio_track_cblk_t *) new uint8_t[size]; // assume mCblk != NULL mCblk = (audio_track_cblk_t *) malloc(size); if (mCblk == NULL) { ALOGE("not enough memory for AudioTrack size=%zu", size); return; } } // construct the shared structure in-place. Loading Loading @@ -237,10 +239,9 @@ AudioFlinger::ThreadBase::TrackBase::~TrackBase() // delete the proxy before deleting the shared memory it refers to, to avoid dangling reference mServerProxy.clear(); if (mCblk != NULL) { if (mClient == 0) { delete mCblk; } else { mCblk->~audio_track_cblk_t(); // destroy our shared-structure. if (mClient == 0) { free(mCblk); } } mCblkMemory.clear(); // free the shared memory before releasing the heap it belongs to Loading