On Mon, 29 Oct 2007, Alexandre Julliard wrote:
Not a patch I
am particularily proud of, but the best way I found to get
rid of
listview.c:5043: warning: 'strW' might be used uninitialized in this function
issued by GCC, and apart from the added cast it actually is simpler than
the original.
It was done the way it is precisely to avoid the non-const cast,
which
triggers a warning too.
Hmm, I didn't see that other warning, but I can easily see that some
versions of GCC or other compilers would do so.
The only patch I can think of that avoid *both* warnings is the one
below. Not perfect, but I fair compromise. What do you think? Or
do you have any better idea that we might want to try?
Gerald
Index: dlls/comctl32/listview.c
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/listview.c,v
retrieving revision 1.490
diff -u -3 -p -r1.490 listview.c
--- dlls/comctl32/listview.c 23 Oct 2007 18:16:28 -0000 1.490
+++ dlls/comctl32/listview.c 4 Nov 2007 18:21:34 -0000
@@ -5040,12 +5040,18 @@ static INT LISTVIEW_FindItemA(const LIST
BOOL hasText = lpFindInfo->flags & (LVFI_STRING | LVFI_PARTIAL);
LVFINDINFOW fiw;
INT res;
- LPWSTR strW;
memcpy(&fiw, lpFindInfo, sizeof(fiw));
- if (hasText) fiw.psz = strW = textdupTtoW((LPCWSTR)lpFindInfo->psz, FALSE);
- res = LISTVIEW_FindItemW(infoPtr, nStart, &fiw);
- if (hasText) textfreeT(strW, FALSE);
+
+ if (hasText)
+ {
+ LPWSTR strW;
+ fiw.psz = strW = textdupTtoW((LPCWSTR)lpFindInfo->psz, FALSE);
+ res = LISTVIEW_FindItemW(infoPtr, nStart, &fiw);
+ textfreeT(strW, FALSE);
+ } else
+ res = LISTVIEW_FindItemW(infoPtr, nStart, &fiw);
+
return res;
}