Intro:
Once I got wine to finally execute the native regedit,
treeview was bringing it down.

Background:
I discovered treeview uses DSA's and Dimi recently
changed the max element number in DSA's to 0x7fff (SHRT_MAX).
Note this value has the special meaning in DSA_InsertPtr
functions of 'add new element to end of array'.

Problem:
INT_MAX (0x7fffffff) was being passed from treeview
to DSA_InsertPtr. This caused failure returns and
eventually a seg fault.

Conclusion:
This patch fixes the problem (according to the style of other
calls to DSA_InsertPtr), and native regedit now works.

Questions for further thought:
I wonder, should 0x7fff be used explicitly, or should
SHRT_MAX be used in places like this instead?

Changelog:
Treeview fix due to change in maximum DSA size.

-- Jeff S.


Index: dlls/comctl32/treeview.c
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/treeview.c,v
retrieving revision 1.103
diff -u -r1.103 treeview.c
--- dlls/comctl32/treeview.c 6 Sep 2002 19:41:18 -0000 1.103
+++ dlls/comctl32/treeview.c 23 Oct 2002 04:12:53 -0000
@@ -949,7 +949,7 @@
if (!newItem)
return NULL;

- if (DPA_InsertPtr(infoPtr->items, INT_MAX, newItem) == -1)
+ if (DPA_InsertPtr(infoPtr->items, 0x7fff, newItem) == -1)
{
COMCTL32_Free(newItem);
return NULL;
@@ -2885,7 +2885,7 @@

for (child = item->firstChild; child != NULL; child = child->nextSibling)
{
- if (DPA_InsertPtr(list, INT_MAX, child) == -1)
+ if (DPA_InsertPtr(list, 0x7fff, child) == -1)
{
DPA_Destroy(list);
return NULL;


_________________________________________________________________
Get faster connections -- switch to MSN Internet Access! http://resourcecenter.msn.com/access/plans/default.asp


Reply via email to