From 4e0ee2fd89a32f406a2065f7115d7ee2bdbc92b5 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Tue, 30 Mar 2010 16:53:40 -0700 Subject: [PATCH] fix [2542425] memory leak during video recording [Sorted|Keyed]Vector would leak their whole storage when resized from the end and TYPE had trivial dtor and copy operators. Change-Id: I8555bb1aa0863df72de27d67ae50e20706e90cf5 --- libs/utils/VectorImpl.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libs/utils/VectorImpl.cpp b/libs/utils/VectorImpl.cpp index 0322af7da..4954ffee7 100644 --- a/libs/utils/VectorImpl.cpp +++ b/libs/utils/VectorImpl.cpp @@ -351,6 +351,7 @@ void* VectorImpl::_grow(size_t where, size_t amount) { const SharedBuffer* cur_sb = SharedBuffer::sharedBuffer(mStorage); SharedBuffer* sb = cur_sb->editResize(new_capacity * mItemSize); + release_storage(); mStorage = sb->data(); } else { SharedBuffer* sb = SharedBuffer::alloc(new_capacity * mItemSize); @@ -403,6 +404,7 @@ void VectorImpl::_shrink(size_t where, size_t amount) { const SharedBuffer* cur_sb = SharedBuffer::sharedBuffer(mStorage); SharedBuffer* sb = cur_sb->editResize(new_capacity * mItemSize); + release_storage(); mStorage = sb->data(); } else { SharedBuffer* sb = SharedBuffer::alloc(new_capacity * mItemSize);