Commit d886eda2 authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

comctl32/treeview: Use HeapAlloc() wrappers.

parent db261c31
...@@ -64,6 +64,7 @@ ...@@ -64,6 +64,7 @@
#include "wine/unicode.h" #include "wine/unicode.h"
#include "wine/debug.h" #include "wine/debug.h"
#include "wine/exception.h" #include "wine/exception.h"
#include "wine/heap.h"
WINE_DEFAULT_DEBUG_CHANNEL(treeview); WINE_DEFAULT_DEBUG_CHANNEL(treeview);
...@@ -552,7 +553,7 @@ TREEVIEW_TVItemFromItem(const TREEVIEW_INFO *infoPtr, UINT mask, TVITEMW *tvItem ...@@ -552,7 +553,7 @@ TREEVIEW_TVItemFromItem(const TREEVIEW_INFO *infoPtr, UINT mask, TVITEMW *tvItem
if (!infoPtr->bNtfUnicode) if (!infoPtr->bNtfUnicode)
{ {
tvItem->cchTextMax = WideCharToMultiByte( CP_ACP, 0, item->pszText, -1, NULL, 0, NULL, NULL ); tvItem->cchTextMax = WideCharToMultiByte( CP_ACP, 0, item->pszText, -1, NULL, 0, NULL, NULL );
tvItem->pszText = Alloc (tvItem->cchTextMax); tvItem->pszText = heap_alloc (tvItem->cchTextMax);
WideCharToMultiByte( CP_ACP, 0, item->pszText, -1, (LPSTR)tvItem->pszText, tvItem->cchTextMax, 0, 0 ); WideCharToMultiByte( CP_ACP, 0, item->pszText, -1, (LPSTR)tvItem->pszText, tvItem->cchTextMax, 0, 0 );
} }
else else
...@@ -593,8 +594,8 @@ TREEVIEW_SendTreeviewNotify(const TREEVIEW_INFO *infoPtr, UINT code, UINT action ...@@ -593,8 +594,8 @@ TREEVIEW_SendTreeviewNotify(const TREEVIEW_INFO *infoPtr, UINT code, UINT action
ret = TREEVIEW_SendRealNotify(infoPtr, code, &nmhdr.hdr); ret = TREEVIEW_SendRealNotify(infoPtr, code, &nmhdr.hdr);
if (!infoPtr->bNtfUnicode) if (!infoPtr->bNtfUnicode)
{ {
Free(nmhdr.itemOld.pszText); heap_free(nmhdr.itemOld.pszText);
Free(nmhdr.itemNew.pszText); heap_free(nmhdr.itemNew.pszText);
} }
return ret; return ret;
} }
...@@ -693,7 +694,7 @@ TREEVIEW_BeginLabelEditNotify(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *editI ...@@ -693,7 +694,7 @@ TREEVIEW_BeginLabelEditNotify(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *editI
ret = TREEVIEW_SendRealNotify(infoPtr, TVN_BEGINLABELEDITW, &tvdi.hdr); ret = TREEVIEW_SendRealNotify(infoPtr, TVN_BEGINLABELEDITW, &tvdi.hdr);
if (!infoPtr->bNtfUnicode) if (!infoPtr->bNtfUnicode)
Free(tvdi.item.pszText); heap_free(tvdi.item.pszText);
return ret; return ret;
} }
...@@ -739,7 +740,7 @@ TREEVIEW_UpdateDispInfo(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item, ...@@ -739,7 +740,7 @@ TREEVIEW_UpdateDispInfo(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item,
(LPSTR)callback.item.pszText, -1, (LPSTR)callback.item.pszText, -1,
NULL, 0); NULL, 0);
buflen = max((len)*sizeof(WCHAR), TEXT_CALLBACK_SIZE); buflen = max((len)*sizeof(WCHAR), TEXT_CALLBACK_SIZE);
newText = ReAlloc(item->pszText, buflen); newText = heap_realloc(item->pszText, buflen);
TRACE("returned str %s, len=%d, buflen=%d\n", TRACE("returned str %s, len=%d, buflen=%d\n",
debugstr_a((LPSTR)callback.item.pszText), len, buflen); debugstr_a((LPSTR)callback.item.pszText), len, buflen);
...@@ -752,12 +753,12 @@ TREEVIEW_UpdateDispInfo(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item, ...@@ -752,12 +753,12 @@ TREEVIEW_UpdateDispInfo(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item,
item->pszText, buflen/sizeof(WCHAR)); item->pszText, buflen/sizeof(WCHAR));
item->cchTextMax = buflen/sizeof(WCHAR); item->cchTextMax = buflen/sizeof(WCHAR);
} }
/* If ReAlloc fails we have nothing to do, but keep original text */ /* If realloc fails we have nothing to do, but keep original text */
} }
else { else {
int len = max(lstrlenW(callback.item.pszText) + 1, int len = max(lstrlenW(callback.item.pszText) + 1,
TEXT_CALLBACK_SIZE); TEXT_CALLBACK_SIZE);
LPWSTR newText = ReAlloc(item->pszText, len); LPWSTR newText = heap_realloc(item->pszText, len);
TRACE("returned wstr %s, len=%d\n", TRACE("returned wstr %s, len=%d\n",
debugstr_w(callback.item.pszText), len); debugstr_w(callback.item.pszText), len);
...@@ -768,7 +769,7 @@ TREEVIEW_UpdateDispInfo(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item, ...@@ -768,7 +769,7 @@ TREEVIEW_UpdateDispInfo(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item,
strcpyW(item->pszText, callback.item.pszText); strcpyW(item->pszText, callback.item.pszText);
item->cchTextMax = len; item->cchTextMax = len;
} }
/* If ReAlloc fails we have nothing to do, but keep original text */ /* If realloc fails we have nothing to do, but keep original text */
} }
} }
else if (mask & TVIF_TEXT) { else if (mask & TVIF_TEXT) {
...@@ -780,7 +781,7 @@ TREEVIEW_UpdateDispInfo(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item, ...@@ -780,7 +781,7 @@ TREEVIEW_UpdateDispInfo(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item,
(LPSTR)callback.item.pszText, -1, (LPSTR)callback.item.pszText, -1,
NULL, 0); NULL, 0);
buflen = max((len)*sizeof(WCHAR), TEXT_CALLBACK_SIZE); buflen = max((len)*sizeof(WCHAR), TEXT_CALLBACK_SIZE);
newText = Alloc(buflen); newText = heap_alloc(buflen);
TRACE("same buffer str %s, len=%d, buflen=%d\n", TRACE("same buffer str %s, len=%d, buflen=%d\n",
debugstr_a((LPSTR)callback.item.pszText), len, buflen); debugstr_a((LPSTR)callback.item.pszText), len, buflen);
...@@ -793,7 +794,7 @@ TREEVIEW_UpdateDispInfo(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item, ...@@ -793,7 +794,7 @@ TREEVIEW_UpdateDispInfo(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item,
(LPSTR)callback.item.pszText, -1, (LPSTR)callback.item.pszText, -1,
item->pszText, buflen/sizeof(WCHAR)); item->pszText, buflen/sizeof(WCHAR));
item->cchTextMax = buflen/sizeof(WCHAR); item->cchTextMax = buflen/sizeof(WCHAR);
Free(oldText); heap_free(oldText);
} }
} }
} }
...@@ -1001,7 +1002,7 @@ TREEVIEW_UpdateSubTree(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *root) ...@@ -1001,7 +1002,7 @@ TREEVIEW_UpdateSubTree(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *root)
static TREEVIEW_ITEM * static TREEVIEW_ITEM *
TREEVIEW_AllocateItem(const TREEVIEW_INFO *infoPtr) TREEVIEW_AllocateItem(const TREEVIEW_INFO *infoPtr)
{ {
TREEVIEW_ITEM *newItem = Alloc(sizeof(TREEVIEW_ITEM)); TREEVIEW_ITEM *newItem = heap_alloc_zero(sizeof(*newItem));
if (!newItem) if (!newItem)
return NULL; return NULL;
...@@ -1017,8 +1018,8 @@ TREEVIEW_AllocateItem(const TREEVIEW_INFO *infoPtr) ...@@ -1017,8 +1018,8 @@ TREEVIEW_AllocateItem(const TREEVIEW_INFO *infoPtr)
if (DPA_InsertPtr(infoPtr->items, INT_MAX, newItem) == -1) if (DPA_InsertPtr(infoPtr->items, INT_MAX, newItem) == -1)
{ {
Free(newItem); heap_free(newItem);
return NULL; return NULL;
} }
return newItem; return newItem;
...@@ -1042,7 +1043,7 @@ TREEVIEW_FreeItem(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item) ...@@ -1042,7 +1043,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); heap_free(item);
} }
...@@ -1133,7 +1134,7 @@ TREEVIEW_DoSetItemT(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item, ...@@ -1133,7 +1134,7 @@ TREEVIEW_DoSetItemT(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item,
else else
len = MultiByteToWideChar(CP_ACP, 0, (LPSTR)tvItem->pszText, -1, NULL, 0); len = MultiByteToWideChar(CP_ACP, 0, (LPSTR)tvItem->pszText, -1, NULL, 0);
newText = ReAlloc(item->pszText, len * sizeof(WCHAR)); newText = heap_realloc(item->pszText, len * sizeof(WCHAR));
if (newText == NULL) return FALSE; if (newText == NULL) return FALSE;
...@@ -1151,10 +1152,8 @@ TREEVIEW_DoSetItemT(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item, ...@@ -1151,10 +1152,8 @@ TREEVIEW_DoSetItemT(const TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item,
} }
else else
{ {
callbackSet |= TVIF_TEXT; callbackSet |= TVIF_TEXT;
item->pszText = heap_realloc(item->pszText, TEXT_CALLBACK_SIZE * sizeof(WCHAR));
item->pszText = ReAlloc(item->pszText,
TEXT_CALLBACK_SIZE * sizeof(WCHAR));
item->cchTextMax = TEXT_CALLBACK_SIZE; item->cchTextMax = TEXT_CALLBACK_SIZE;
TRACE("setting callback, item %p\n", item); TRACE("setting callback, item %p\n", item);
} }
...@@ -1499,7 +1498,7 @@ TREEVIEW_RemoveItem(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item) ...@@ -1499,7 +1498,7 @@ TREEVIEW_RemoveItem(TREEVIEW_INFO *infoPtr, TREEVIEW_ITEM *item)
infoPtr->uNumItems--; infoPtr->uNumItems--;
if (item->pszText != LPSTR_TEXTCALLBACKW) if (item->pszText != LPSTR_TEXTCALLBACKW)
Free(item->pszText); heap_free(item->pszText);
TREEVIEW_FreeItem(infoPtr, item); TREEVIEW_FreeItem(infoPtr, item);
} }
...@@ -4031,18 +4030,18 @@ TREEVIEW_EndEditLabelNow(TREEVIEW_INFO *infoPtr, BOOL bCancel) ...@@ -4031,18 +4030,18 @@ TREEVIEW_EndEditLabelNow(TREEVIEW_INFO *infoPtr, BOOL bCancel)
if (!infoPtr->bNtfUnicode) if (!infoPtr->bNtfUnicode)
{ {
DWORD len = MultiByteToWideChar( CP_ACP, 0, (LPSTR)tmpText, -1, NULL, 0 ); DWORD len = MultiByteToWideChar( CP_ACP, 0, (LPSTR)tmpText, -1, NULL, 0 );
newText = Alloc(len * sizeof(WCHAR)); newText = heap_alloc(len * sizeof(WCHAR));
MultiByteToWideChar( CP_ACP, 0, (LPSTR)tmpText, -1, newText, len ); MultiByteToWideChar( CP_ACP, 0, (LPSTR)tmpText, -1, newText, len );
iLength = len - 1; iLength = len - 1;
} }
if (strcmpW(newText, editedItem->pszText) != 0) if (strcmpW(newText, editedItem->pszText) != 0)
{ {
WCHAR *ptr = ReAlloc(editedItem->pszText, sizeof(WCHAR)*(iLength + 1)); WCHAR *ptr = heap_realloc(editedItem->pszText, sizeof(WCHAR)*(iLength + 1));
if (ptr == NULL) if (ptr == NULL)
{ {
ERR("OutOfMemory, cannot allocate space for label\n"); ERR("OutOfMemory, cannot allocate space for label\n");
if(newText != tmpText) Free(newText); if (newText != tmpText) heap_free(newText);
DestroyWindow(infoPtr->hwndEdit); DestroyWindow(infoPtr->hwndEdit);
infoPtr->hwndEdit = 0; infoPtr->hwndEdit = 0;
infoPtr->editItem = NULL; infoPtr->editItem = NULL;
...@@ -4056,7 +4055,7 @@ TREEVIEW_EndEditLabelNow(TREEVIEW_INFO *infoPtr, BOOL bCancel) ...@@ -4056,7 +4055,7 @@ TREEVIEW_EndEditLabelNow(TREEVIEW_INFO *infoPtr, BOOL bCancel)
TREEVIEW_ComputeTextWidth(infoPtr, editedItem, 0); TREEVIEW_ComputeTextWidth(infoPtr, editedItem, 0);
} }
} }
if(newText != tmpText) Free(newText); if (newText != tmpText) heap_free(newText);
} }
ShowWindow(infoPtr->hwndEdit, SW_HIDE); ShowWindow(infoPtr->hwndEdit, SW_HIDE);
...@@ -5078,7 +5077,7 @@ TREEVIEW_Create(HWND hwnd, const CREATESTRUCTW *lpcs) ...@@ -5078,7 +5077,7 @@ TREEVIEW_Create(HWND hwnd, const CREATESTRUCTW *lpcs)
TRACE("wnd %p, style 0x%x\n", hwnd, GetWindowLongW(hwnd, GWL_STYLE)); TRACE("wnd %p, style 0x%x\n", hwnd, GetWindowLongW(hwnd, GWL_STYLE));
infoPtr = Alloc(sizeof(TREEVIEW_INFO)); infoPtr = heap_alloc_zero(sizeof(TREEVIEW_INFO));
if (infoPtr == NULL) if (infoPtr == NULL)
{ {
...@@ -5203,7 +5202,7 @@ TREEVIEW_Destroy(TREEVIEW_INFO *infoPtr) ...@@ -5203,7 +5202,7 @@ TREEVIEW_Destroy(TREEVIEW_INFO *infoPtr)
DeleteObject(infoPtr->hUnderlineFont); DeleteObject(infoPtr->hUnderlineFont);
DeleteObject(infoPtr->hBoldUnderlineFont); DeleteObject(infoPtr->hBoldUnderlineFont);
DestroyWindow(infoPtr->hwndToolTip); DestroyWindow(infoPtr->hwndToolTip);
Free(infoPtr); heap_free(infoPtr);
return 0; return 0;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment