[comctl32] Reduce memory usage of the syslink control (Take 5)

Robert Shearman rob at codeweavers.com
Thu Jan 5 13:14:19 CST 2006


Thomas Weidenmueller wrote:

>Reduce memory usage of the syslink control and fix dependent code.
>
>  
>
Alexandre has already said what he doesn't like about the patch, but 
I'll be a bit more specific. Put the below changes into a separate patch 
plus the moving around of the LIF_STATE case in SYSLINK_SetItem, because 
they are really separate changes.

>@@ -878,7 +879,7 @@
>                 if((Current->Type == slLink) && (Current->u.Link.state & LIS_FOCUSED) && infoPtr->HasFocus)
>                 {
>                     COLORREF PrevColor;
>-                    PrevColor = SetBkColor(hdc, OldBkColor);
>+                    PrevColor = SetTextColor(hdc, OldBkColor);
>                     DrawFocusRect(hdc, &bl->rc);
>                     SetBkColor(hdc, PrevColor);
>                 }
>@@ -972,8 +973,7 @@
>     /* clear the document */
>     SYSLINK_ClearDoc(infoPtr);
>     
>-    textlen = lstrlenW(Text);
>-    if(Text == NULL || textlen == 0)
>+    if(Text == NULL || (textlen = lstrlenW(Text)) == 0)
>     {
>         return TRUE;
>     }
>@@ -984,8 +984,9 @@
>         /* Render text position and word wrapping in memory */
>         HDC hdc = GetDC(infoPtr->Self);
>         SYSLINK_Render(infoPtr, hdc);
>-        SYSLINK_Draw(infoPtr, hdc);
>         ReleaseDC(infoPtr->Self, hdc);
>+
>+        InvalidateRect(infoPtr->Self, NULL, TRUE);
>     }
>     
>     return TRUE;
>@@ -1531,11 +1553,8 @@
>     case WM_SIZE:
>     {
>         HDC hdc = GetDC(infoPtr->Self);
>-        if(hdc != NULL)
>-        {
>-          SYSLINK_Render(infoPtr, hdc);
>-          ReleaseDC(infoPtr->Self, hdc);
>-        }
>+        SYSLINK_Render(infoPtr, hdc);
>+        ReleaseDC(infoPtr->Self, hdc);
>         return 0;
>     }
> 
>  
>



-- 
Rob Shearman




More information about the wine-devel mailing list