Fixed memory leak in ImageBuffer::ResizeN()
[platform/framework/native/image.git] / 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));