diff options
author | Andreas Huber <andih@google.com> | 2012-12-03 09:17:51 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-12-03 09:17:51 -0800 |
commit | cd8d39e00fb7896e56318cc192978446e21d46b8 (patch) | |
tree | 50016735b93e0916d42ebf3f5e4cfb381788fe1c /media/libstagefright | |
parent | ba6b1bc38e0c355277f69af286469adb5f02e876 (diff) | |
parent | f00d40c716fd4741fa56dd2b59813227658e50f2 (diff) |
am f00d40c7: Merge "Memory leak solved in MPEG4Extractor::parseChunk for cover art"
* commit 'f00d40c716fd4741fa56dd2b59813227658e50f2':
Memory leak solved in MPEG4Extractor::parseChunk for cover art
Diffstat (limited to 'media/libstagefright')
-rw-r--r-- | media/libstagefright/MPEG4Extractor.cpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/media/libstagefright/MPEG4Extractor.cpp b/media/libstagefright/MPEG4Extractor.cpp index b2afec70..1a62f9df 100644 --- a/media/libstagefright/MPEG4Extractor.cpp +++ b/media/libstagefright/MPEG4Extractor.cpp @@ -1424,18 +1424,15 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) { if (mFileMetaData != NULL) { ALOGV("chunk_data_size = %lld and data_offset = %lld", chunk_data_size, data_offset); - uint8_t *buffer = new uint8_t[chunk_data_size + 1]; + sp<ABuffer> buffer = new ABuffer(chunk_data_size + 1); if (mDataSource->readAt( - data_offset, buffer, chunk_data_size) != (ssize_t)chunk_data_size) { - delete[] buffer; - buffer = NULL; - + data_offset, buffer->data(), chunk_data_size) != (ssize_t)chunk_data_size) { return ERROR_IO; } const int kSkipBytesOfDataBox = 16; mFileMetaData->setData( kKeyAlbumArt, MetaData::TYPE_NONE, - buffer + kSkipBytesOfDataBox, chunk_data_size - kSkipBytesOfDataBox); + buffer->data() + kSkipBytesOfDataBox, chunk_data_size - kSkipBytesOfDataBox); } *offset += chunk_size; |