[ros-diffs] [fireball] 40257: Apply patch from Wine: http://www.winehq.org/pipermail/wine-patches/2009-March/071155.html - Fix bitmap size calculation in IMAGELIST_InternalExpandBitmaps and remove unneeded parameter. Memory requirements are greatly reduced after this fix. See issue #4304 for more details.

fireball at svn.reactos.org fireball at svn.reactos.org
Thu Mar 26 20:46:12 CET 2009


Author: fireball
Date: Thu Mar 26 22:46:11 2009
New Revision: 40257

URL: http://svn.reactos.org/svn/reactos?rev=40257&view=rev
Log:
Apply patch from Wine:
http://www.winehq.org/pipermail/wine-patches/2009-March/071155.html

- Fix bitmap size calculation in IMAGELIST_InternalExpandBitmaps and remove unneeded parameter. Memory requirements are greatly reduced after this fix.

See issue #4304 for more details.

Modified:
    trunk/reactos/dll/win32/comctl32/imagelist.c

Modified: trunk/reactos/dll/win32/comctl32/imagelist.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/comctl32/imagelist.c?rev=40257&r1=40256&r2=40257&view=diff
==============================================================================
--- trunk/reactos/dll/win32/comctl32/imagelist.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/comctl32/imagelist.c [iso-8859-1] Thu Mar 26 22:46:11 2009
@@ -155,7 +155,7 @@
  *     This function CANNOT be used to reduce the number of images.
  */
 static void
-IMAGELIST_InternalExpandBitmaps (HIMAGELIST himl, INT nImageCount, INT cx, INT cy)
+IMAGELIST_InternalExpandBitmaps (HIMAGELIST himl, INT nImageCount, INT cy)
 {
     HDC     hdcBitmap;
     HBITMAP hbmNewBitmap, hbmNull;
@@ -166,15 +166,14 @@
         && (himl->cy >= cy))
 	return;
 
-    if (cx == 0) cx = himl->cx;
     nNewCount = himl->cCurImage + nImageCount + himl->cGrow;
 
-    imagelist_get_bitmap_size(himl, nNewCount, cx, &sz);
+    imagelist_get_bitmap_size(himl, nNewCount, himl->cx, &sz);
 
     TRACE("Create expanded bitmaps : himl=%p x=%d y=%d count=%d\n", himl, sz.cx, cy, nNewCount);
     hdcBitmap = CreateCompatibleDC (0);
 
-    hbmNewBitmap = ImageList_CreateImage(hdcBitmap, himl, nNewCount, cx);
+    hbmNewBitmap = ImageList_CreateImage(hdcBitmap, himl, nNewCount, himl->cx);
 
     if (hbmNewBitmap == 0)
         ERR("creating new image bitmap (x=%d y=%d)!\n", sz.cx, cy);
@@ -248,7 +247,7 @@
 
     nImageCount = bmp.bmWidth / himl->cx;
 
-    IMAGELIST_InternalExpandBitmaps (himl, nImageCount, bmp.bmWidth, bmp.bmHeight);
+    IMAGELIST_InternalExpandBitmaps (himl, nImageCount, bmp.bmHeight);
 
     hdcBitmap = CreateCompatibleDC(0);
 
@@ -350,7 +349,7 @@
     else
 	nImageCount = 0;
 
-    IMAGELIST_InternalExpandBitmaps (himl, nImageCount, bmp.bmWidth, bmp.bmHeight);
+    IMAGELIST_InternalExpandBitmaps (himl, nImageCount, bmp.bmHeight);
 
     nIndex = himl->cCurImage;
     himl->cCurImage += nImageCount;
@@ -2304,7 +2303,7 @@
 
     if (nIndex == -1) {
         if (himl->cCurImage + 1 > himl->cMaxImage)
-            IMAGELIST_InternalExpandBitmaps (himl, 1, 0, 0);
+            IMAGELIST_InternalExpandBitmaps (himl, 1, 0);
 
         nIndex = himl->cCurImage;
         himl->cCurImage++;



More information about the Ros-diffs mailing list