msvfw32: Simplify error handling in ICSeqCompressFrameStart

Bruno Jesus 00cpxxx at gmail.com
Mon Oct 19 04:47:56 CDT 2015


Signed-off-by: Bruno Jesus <00cpxxx at gmail.com>

I'm working on a proper fix to bug
https://bugs.winehq.org/show_bug.cgi?id=27595 and this is a necessary
cleanup.
-------------- next part --------------

---
 dlls/msvfw32/msvideo_main.c | 21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)

diff --git a/dlls/msvfw32/msvideo_main.c b/dlls/msvfw32/msvideo_main.c
index db56fdf..5aff706 100644
--- a/dlls/msvfw32/msvideo_main.c
+++ b/dlls/msvfw32/msvideo_main.c
@@ -1433,28 +1433,18 @@ BOOL VFWAPI ICSeqCompressFrameStart(PCOMPVARS pc, LPBITMAPINFO lpbiIn)
     *pc->lpbiIn = *lpbiIn;
     pc->lpBitsPrev = HeapAlloc(GetProcessHeap(), 0, pc->lpbiIn->bmiHeader.biSizeImage);
     if (!pc->lpBitsPrev)
-    {
-        HeapFree(GetProcessHeap(), 0, pc->lpbiIn);
-	return FALSE;
-    }
+        goto error;
 
     pc->lpState = HeapAlloc(GetProcessHeap(), 0, sizeof(ICCOMPRESS));
     if (!pc->lpState)
-    {
-       HeapFree(GetProcessHeap(), 0, pc->lpbiIn);
-       HeapFree(GetProcessHeap(), 0, pc->lpBitsPrev);
-       return FALSE;
-    }
+        goto error;
+
     pc->cbState = sizeof(ICCOMPRESS);
 
     pc->lpBitsOut = HeapAlloc(GetProcessHeap(), 0, pc->lpbiOut->bmiHeader.biSizeImage);
     if (!pc->lpBitsOut)
-    {
-       HeapFree(GetProcessHeap(), 0, pc->lpbiIn);
-       HeapFree(GetProcessHeap(), 0, pc->lpBitsPrev);
-       HeapFree(GetProcessHeap(), 0, pc->lpState);
-       return FALSE;
-    }
+        goto error;
+
     TRACE("Compvars:\n"
           "\tpc:\n"
           "\tsize: %i\n"
@@ -1483,6 +1473,7 @@ BOOL VFWAPI ICSeqCompressFrameStart(PCOMPVARS pc, LPBITMAPINFO lpbiIn)
        icComp->lpbiPrev = &pc->lpbiIn->bmiHeader;
        return TRUE;
     }
+error:
     HeapFree(GetProcessHeap(), 0, pc->lpbiIn);
     HeapFree(GetProcessHeap(), 0, pc->lpBitsPrev);
     HeapFree(GetProcessHeap(), 0, pc->lpState);
-- 
2.1.4



More information about the wine-patches mailing list