Fixed memory leak in ImageBuffer::ResizeN()
authorJungYumin <y_m.jung@samsung.com>
Thu, 11 Apr 2013 04:45:57 +0000 (13:45 +0900)
committerJungYumin <y_m.jung@samsung.com>
Thu, 11 Apr 2013 04:45:57 +0000 (13:45 +0900)
Change-Id: Ia7f2b20fcf252bc590417ce1f3551b61fe59a865
Signed-off-by: JungYumin <y_m.jung@samsung.com>
src/FMedia_ImageBufferImpl.cpp

index a3db7e5..49f6f1d 100644 (file)
@@ -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));