[1/4] comctl32/tab: Remove direct access to items array

Nikolay Sivov bunglehead at gmail.com
Sat Mar 28 09:37:51 CDT 2009


All Items memory allocated in a single call,
offset could differ cause extra bytes size could be changed.

Changelog:
   - Remove direct access to items array

>From 3d1d7da02174ed5847a8e5b3952b939a1df55895 Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <bunglehead at gmail.com>
Date: Sat, 28 Mar 2009 09:54:37 -0400
Subject: Remove direct access to items array

---
 dlls/comctl32/tab.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/dlls/comctl32/tab.c b/dlls/comctl32/tab.c
index 62770aa..2e5dced 100644
--- a/dlls/comctl32/tab.c
+++ b/dlls/comctl32/tab.c
@@ -252,8 +252,8 @@ static inline LRESULT TAB_SetCurSel (TAB_INFO *infoPtr, INT iItem)
       return -1;
   else {
       if (infoPtr->iSelected != iItem) {
-          infoPtr->items[prevItem].dwState &= ~TCIS_BUTTONPRESSED;
-          infoPtr->items[iItem].dwState |= TCIS_BUTTONPRESSED;
+          TAB_GetItem(infoPtr, prevItem)->dwState &= ~TCIS_BUTTONPRESSED;
+          TAB_GetItem(infoPtr, iItem)->dwState |= TCIS_BUTTONPRESSED;
 
           infoPtr->iSelected=iItem;
           infoPtr->uFocus=iItem;
@@ -1956,7 +1956,7 @@ static void TAB_DrawItem(const TAB_INFO *infoPtr, HDC  hdc, INT  iItem)
       }
       else  /* ! selected */
       {
-        DWORD state = infoPtr->items[iItem].dwState;
+        DWORD state = TAB_GetItem(infoPtr, iItem)->dwState;
 
         if (state & TCIS_BUTTONPRESSED)
           DrawEdge(hdc, &r, EDGE_SUNKEN, BF_SOFT|BF_RECT);
@@ -3113,7 +3113,7 @@ static LRESULT TAB_RemoveImage (TAB_INFO *infoPtr, INT image)
     /* shift indices, repaint items if needed */
     for (i = 0; i < infoPtr->uNumItem; i++)
     {
-      idx = &infoPtr->items[i].iImage;
+      idx = &TAB_GetItem(infoPtr, i)->iImage;
       if (*idx >= image)
       {
         if (*idx == image)
-- 
1.5.6.5







More information about the wine-patches mailing list