Mikołaj Zalewski : comctl32: toolbar: Don' t leak the intoPtr->bitmaps during resizing and destruction.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Sep 20 05:33:42 CDT 2006


Module: wine
Branch: master
Commit: 5facde470e677022a31edbe124b39a3ac56b0d71
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=5facde470e677022a31edbe124b39a3ac56b0d71

Author: Mikołaj Zalewski <mikolaj at zalewski.pl>
Date:   Mon Sep 18 12:01:49 2006 +0200

comctl32: toolbar: Don't leak the intoPtr->bitmaps during resizing and destruction.

---

 dlls/comctl32/toolbar.c |   13 ++-----------
 1 files changed, 2 insertions(+), 11 deletions(-)

diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c
index 6fb200c..9a04ecf 100644
--- a/dlls/comctl32/toolbar.c
+++ b/dlls/comctl32/toolbar.c
@@ -2751,17 +2751,7 @@ TOOLBAR_AddBitmap (HWND hwnd, WPARAM wPa
 
     TRACE("Number of bitmap infos: %d\n", infoPtr->nNumBitmapInfos);
 
-    if (infoPtr->nNumBitmapInfos == 0)
-    {
-        infoPtr->bitmaps = Alloc(sizeof(TBITMAP_INFO));
-    }
-    else
-    {
-        TBITMAP_INFO *oldBitmaps = infoPtr->bitmaps;
-        infoPtr->bitmaps = Alloc((infoPtr->nNumBitmapInfos + 1) * sizeof(TBITMAP_INFO));
-        memcpy(&infoPtr->bitmaps[0], &oldBitmaps[0], infoPtr->nNumBitmapInfos * sizeof(TBITMAP_INFO));
-    }
-
+    infoPtr->bitmaps = ReAlloc(infoPtr->bitmaps, (infoPtr->nNumBitmapInfos + 1) * sizeof(TBITMAP_INFO));
     infoPtr->bitmaps[infoPtr->nNumBitmapInfos].nButtons = nButtons;
     infoPtr->bitmaps[infoPtr->nNumBitmapInfos].hInst = lpAddBmp->hInst;
     infoPtr->bitmaps[infoPtr->nNumBitmapInfos].nID = lpAddBmp->nID;
@@ -5672,6 +5662,7 @@ TOOLBAR_Destroy (HWND hwnd, WPARAM wPara
 
     /* delete temporary buffer for tooltip text */
     Free (infoPtr->pszTooltipText);
+    Free (infoPtr->bitmaps);            /* bitmaps list */
 
     /* delete button data */
     if (infoPtr->buttons)




More information about the wine-cvs mailing list