From f4a17a86e1b21b333d371f59b7920e11dec3995d Mon Sep 17 00:00:00 2001 From: JungYumin Date: Thu, 11 Apr 2013 13:45:57 +0900 Subject: [PATCH] Fixed memory leak in ImageBuffer::ResizeN() Change-Id: Ia7f2b20fcf252bc590417ce1f3551b61fe59a865 Signed-off-by: JungYumin --- src/FMedia_ImageBufferImpl.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/FMedia_ImageBufferImpl.cpp b/src/FMedia_ImageBufferImpl.cpp index a3db7e5..49f6f1d 100644 --- a/src/FMedia_ImageBufferImpl.cpp +++ b/src/FMedia_ImageBufferImpl.cpp @@ -162,13 +162,17 @@ _ImageBufferImpl::Construct(int width, int height, MediaPixelFormat pixelFormat, __pBuffer.reset(new (std::nothrow) byte[reqBufferSize]); SysTryReturn(NID_MEDIA, __pBuffer.get() != null, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Construct instance failed."); - memset(__pBuffer.get(), 0, reqBufferSize); + __bufSize = reqBufferSize; if (pData != null) { memcpy(__pBuffer.get(), pData, reqBufferSize); } + else + { + memset(__pBuffer.get(), 0, reqBufferSize); + } return r; } @@ -1114,7 +1118,7 @@ _ImageBufferImpl::ResizeN(int width, int height) const SysTryCatch(NID_MEDIA, pImgBuffer.get() != null, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Could not create new instance.") - r = pImgBuffer->Construct(width, height, __pixelFormat, pDataResized.release(), dstLength); + r = pImgBuffer->Construct(width, height, __pixelFormat, pDataResized.get(), dstLength); SysTryReturn(NID_MEDIA, r == E_SUCCESS, null, r, "[%s] Failed to construct the resized ImageBuffer.", GetErrorMessage(r)); -- 2.7.4