]> git.saurik.com Git - wxWidgets.git/commitdiff
Fix memory leak if wxDC::DrawBitmap() fails in wxOS2.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 2 Jan 2011 22:04:38 +0000 (22:04 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 2 Jan 2011 22:04:38 +0000 (22:04 +0000)
Don't forget to free the buffer if we return abnormally.

Closes #12825.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66526 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/os2/dc.cpp

index 228e231c5f0068a3ab8705383288e05cc8858fe6..ab1b0ad71813eed161dfbc606298aaa2b84957c0 100644 (file)
@@ -1579,6 +1579,7 @@ void wxPMDCImpl::DoDrawBitmap(
                 {
                     vError = ::WinGetLastError(vHabmain);
                     sError = wxPMErrorToStr(vError);
                 {
                     vError = ::WinGetLastError(vHabmain);
                     sError = wxPMErrorToStr(vError);
+                    delete [] pucBits;
                     return;
                 }
                 if ((lScans = ::GpiQueryBitmapBits( hPS
                     return;
                 }
                 if ((lScans = ::GpiQueryBitmapBits( hPS
@@ -1590,6 +1591,7 @@ void wxPMDCImpl::DoDrawBitmap(
                 {
                     vError = ::WinGetLastError(vHabmain);
                     sError = wxPMErrorToStr(vError);
                 {
                     vError = ::WinGetLastError(vHabmain);
                     sError = wxPMErrorToStr(vError);
+                    delete [] pucBits;
                     return;
                 }
                 unsigned char           cOldRedFore   = (unsigned char)(lOldForeGround >> 16);
                     return;
                 }
                 unsigned char           cOldRedFore   = (unsigned char)(lOldForeGround >> 16);