comctl32: Dangling pointers fix.

This commit is contained in:
Andrew Talbot 2008-04-27 14:17:30 +01:00 committed by Alexandre Julliard
parent c6d0d6d185
commit 2db311a843
3 changed files with 6 additions and 3 deletions

View File

@ -1600,9 +1600,11 @@ static LRESULT COMBOEX_Destroy (COMBOEX_INFO *infoPtr)
if (infoPtr->defaultFont) if (infoPtr->defaultFont)
DeleteObject (infoPtr->defaultFont); DeleteObject (infoPtr->defaultFont);
SetWindowLongPtrW (infoPtr->hwndSelf, 0, 0);
/* free comboex info data */ /* free comboex info data */
Free (infoPtr); Free (infoPtr);
SetWindowLongPtrW (infoPtr->hwndSelf, 0, 0);
return 0; return 0;
} }

View File

@ -1452,9 +1452,10 @@ TRACKBAR_Destroy (TRACKBAR_INFO *infoPtr)
if (infoPtr->hwndToolTip) if (infoPtr->hwndToolTip)
DestroyWindow (infoPtr->hwndToolTip); DestroyWindow (infoPtr->hwndToolTip);
Free (infoPtr);
SetWindowLongPtrW (infoPtr->hwndSelf, 0, 0); SetWindowLongPtrW (infoPtr->hwndSelf, 0, 0);
CloseThemeData (GetWindowTheme (infoPtr->hwndSelf)); CloseThemeData (GetWindowTheme (infoPtr->hwndSelf));
Free (infoPtr);
return 0; return 0;
} }

View File

@ -1019,7 +1019,6 @@ static void
TREEVIEW_FreeItem(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item) TREEVIEW_FreeItem(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item)
{ {
DPA_DeletePtr(infoPtr->items, DPA_GetPtrIndex(infoPtr->items, item)); DPA_DeletePtr(infoPtr->items, DPA_GetPtrIndex(infoPtr->items, item));
Free(item);
if (infoPtr->selectedItem == item) if (infoPtr->selectedItem == item)
infoPtr->selectedItem = NULL; infoPtr->selectedItem = NULL;
if (infoPtr->hotItem == item) if (infoPtr->hotItem == item)
@ -1032,6 +1031,7 @@ TREEVIEW_FreeItem(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item)
infoPtr->dropItem = NULL; infoPtr->dropItem = NULL;
if (infoPtr->insertMarkItem == item) if (infoPtr->insertMarkItem == item)
infoPtr->insertMarkItem = NULL; infoPtr->insertMarkItem = NULL;
Free(item);
} }