From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/comctl32/propsheet.c | 137 ++++++++++++++++---------------------- 1 file changed, 58 insertions(+), 79 deletions(-)
diff --git a/dlls/comctl32/propsheet.c b/dlls/comctl32/propsheet.c index 43192771300..d650243230c 100644 --- a/dlls/comctl32/propsheet.c +++ b/dlls/comctl32/propsheet.c @@ -51,6 +51,7 @@
#include <stdarg.h> #include <string.h> +#include <stdlib.h>
#define NONAMELESSUNION
@@ -184,28 +185,13 @@ PROPSHEET_DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
WINE_DEFAULT_DEBUG_CHANNEL(propsheet);
-static char *heap_strdupA(const char *str) -{ - int len = strlen(str) + 1; - char *ret = Alloc(len); - return strcpy(ret, str); -} - -static WCHAR *heap_strdupW(const WCHAR *str) -{ - int len = lstrlenW(str) + 1; - WCHAR *ret = Alloc(len * sizeof(WCHAR)); - lstrcpyW(ret, str); - return ret; -} - static WCHAR *heap_strdupAtoW(const char *str) { WCHAR *ret; INT len;
len = MultiByteToWideChar(CP_ACP, 0, str, -1, 0, 0); - ret = Alloc(len * sizeof(WCHAR)); + ret = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len);
return ret; @@ -217,7 +203,7 @@ static char *heap_strdupWtoA(const WCHAR *str) INT len;
len = WideCharToMultiByte(CP_ACP, 0, str, -1, 0, 0, 0, 0); - ret = Alloc(len); + ret = malloc(len); WideCharToMultiByte(CP_ACP, 0, str, -1, ret, len, 0, 0);
return ret; @@ -447,11 +433,11 @@ static WCHAR* HPSP_get_title(HPROPSHEETPAGE hpsp, const WCHAR *template_title) else pTitle = L"(null)";
- return heap_strdupW(pTitle); + return wcsdup(pTitle); }
if (hpsp->unicode) - return heap_strdupW(title); + return wcsdup(title); return heap_strdupAtoW(title); }
@@ -523,15 +509,15 @@ static void HPSP_set_header_title(HPROPSHEETPAGE hpsp, const WCHAR *title) if (hpsp->unicode) { if (!IS_INTRESOURCE(hpsp->pspW.pszHeaderTitle)) - Free((void *)hpsp->pspW.pszHeaderTitle); + free((void *)hpsp->pspW.pszHeaderTitle);
- hpsp->pspW.pszHeaderTitle = heap_strdupW(title); + hpsp->pspW.pszHeaderTitle = wcsdup(title); hpsp->pspW.dwFlags |= PSP_USEHEADERTITLE; } else { if (!IS_INTRESOURCE(hpsp->pspA.pszHeaderTitle)) - Free((void *)hpsp->pspA.pszHeaderTitle); + free((void *)hpsp->pspA.pszHeaderTitle);
hpsp->pspA.pszHeaderTitle = heap_strdupWtoA(title); hpsp->pspA.dwFlags |= PSP_USEHEADERTITLE; @@ -543,15 +529,15 @@ static void HPSP_set_header_subtitle(HPROPSHEETPAGE hpsp, const WCHAR *subtitle) if (hpsp->unicode) { if (!IS_INTRESOURCE(hpsp->pspW.pszHeaderTitle)) - Free((void *)hpsp->pspW.pszHeaderTitle); + free((void *)hpsp->pspW.pszHeaderTitle);
- hpsp->pspW.pszHeaderTitle = heap_strdupW(subtitle); + hpsp->pspW.pszHeaderTitle = wcsdup(subtitle); hpsp->pspW.dwFlags |= PSP_USEHEADERSUBTITLE; } else { if (!IS_INTRESOURCE(hpsp->pspA.pszHeaderTitle)) - Free((void *)hpsp->pspA.pszHeaderTitle); + free((void *)hpsp->pspA.pszHeaderTitle);
hpsp->pspA.pszHeaderTitle = heap_strdupWtoA(subtitle); hpsp->pspA.dwFlags |= PSP_USEHEADERSUBTITLE; @@ -718,13 +704,7 @@ static void PROPSHEET_CollectSheetInfoA(LPCPROPSHEETHEADERA lppsh, else { if (!IS_INTRESOURCE(lppsh->pszCaption)) - { - int len = MultiByteToWideChar(CP_ACP, 0, lppsh->pszCaption, -1, NULL, 0); - WCHAR *caption = Alloc( len*sizeof (WCHAR) ); - - MultiByteToWideChar(CP_ACP, 0, lppsh->pszCaption, -1, caption, len); - psInfo->ppshheader.pszCaption = caption; - } + psInfo->ppshheader.pszCaption = heap_strdupAtoW(lppsh->pszCaption); } psInfo->nPages = lppsh->nPages;
@@ -761,7 +741,7 @@ static void PROPSHEET_CollectSheetInfoW(LPCPROPSHEETHEADERW lppsh, else { if (!IS_INTRESOURCE(lppsh->pszCaption)) - psInfo->ppshheader.pszCaption = heap_strdupW( lppsh->pszCaption ); + psInfo->ppshheader.pszCaption = wcsdup( lppsh->pszCaption ); } psInfo->nPages = lppsh->nPages;
@@ -975,7 +955,7 @@ static INT_PTR PROPSHEET_CreateDialog(PropSheetInfo* psInfo) */ resSize = SizeofResource(COMCTL32_hModule, hRes);
- temp = Alloc(2 * resSize); + temp = malloc(2 * resSize);
if (!temp) return -1; @@ -1020,7 +1000,7 @@ static INT_PTR PROPSHEET_CreateDialog(PropSheetInfo* psInfo) if ( !ret ) ret = -1; }
- Free(temp); + free(temp);
return ret; } @@ -1561,7 +1541,7 @@ static BOOL PROPSHEET_CreatePage(HWND hwndParent, }
pTemplate = HPSP_load_template(hpsp, &resSize); - pTemplateCopy = Alloc(resSize); + pTemplateCopy = malloc(resSize); if (!pTemplateCopy) return FALSE;
@@ -1597,8 +1577,7 @@ static BOOL PROPSHEET_CreatePage(HWND hwndParent,
HPSP_call_callback(hpsp, PSPCB_CREATE); hwndPage = HPSP_create_page(hpsp, pTemplateCopy, hwndParent); - /* Free a no more needed copy */ - Free(pTemplateCopy); + free(pTemplateCopy);
if(!hwndPage) return FALSE; @@ -2290,11 +2269,11 @@ static void PROPSHEET_SetTitleW(HWND hwndDlg, DWORD dwStyle, LPCWSTR lpszText) int lentitle = lstrlenW(lpszText); int lenprop = lstrlenW(psInfo->strPropertiesFor);
- dest = Alloc( (lentitle + lenprop + 1)*sizeof (WCHAR)); + dest = malloc( (lentitle + lenprop + 1)*sizeof (WCHAR)); wsprintfW(dest, psInfo->strPropertiesFor, lpszText);
SetWindowTextW(hwndDlg, dest); - Free(dest); + free(dest); } else SetWindowTextW(hwndDlg, lpszText); @@ -2408,7 +2387,7 @@ static BOOL PROPSHEET_InsertPage(HWND hwndDlg, HPROPSHEETPAGE hpageInsertAfter, if (index > psInfo->nPages) index = psInfo->nPages;
- ppi = Alloc(sizeof(PropPageInfo) * (psInfo->nPages + 1)); + ppi = malloc(sizeof(PropPageInfo) * (psInfo->nPages + 1)); if (!ppi) return FALSE;
@@ -2433,7 +2412,7 @@ static BOOL PROPSHEET_InsertPage(HWND hwndDlg, HPROPSHEETPAGE hpageInsertAfter, if (!PROPSHEET_CollectPageInfo(hpage, psInfo, index, FALSE)) { psInfo->proppage = prev_ppi; - Free(ppi); + free(ppi); return FALSE; }
@@ -2445,12 +2424,12 @@ static BOOL PROPSHEET_InsertPage(HWND hwndDlg, HPROPSHEETPAGE hpageInsertAfter, if (!PROPSHEET_CreatePage(hwndDlg, index, psInfo, hpage)) { psInfo->proppage = prev_ppi; - Free(ppi); + free(ppi); return FALSE; } }
- Free(prev_ppi); + free(prev_ppi); psInfo->nPages++; if (index <= psInfo->active_page) psInfo->active_page++; @@ -2565,7 +2544,7 @@ static BOOL PROPSHEET_RemovePage(HWND hwndDlg, if(psInfo->proppage[index].hpage) { if (HPSP_get_flags(psInfo->proppage[index].hpage) & PSP_USETITLE) - Free ((LPVOID)psInfo->proppage[index].pszText); + free( (LPVOID)psInfo->proppage[index].pszText);
DestroyPropertySheetPage(psInfo->proppage[index].hpage); } @@ -2575,7 +2554,7 @@ static BOOL PROPSHEET_RemovePage(HWND hwndDlg,
oldPages = psInfo->proppage; psInfo->nPages--; - psInfo->proppage = Alloc(sizeof(PropPageInfo) * psInfo->nPages); + psInfo->proppage = malloc(sizeof(PropPageInfo) * psInfo->nPages);
if (index > 0) memcpy(&psInfo->proppage[0], &oldPages[0], index * sizeof(PropPageInfo)); @@ -2584,7 +2563,7 @@ static BOOL PROPSHEET_RemovePage(HWND hwndDlg, memcpy(&psInfo->proppage[index], &oldPages[index + 1], (psInfo->nPages - index) * sizeof(PropPageInfo));
- Free(oldPages); + free(oldPages);
return FALSE; } @@ -2667,7 +2646,7 @@ static void PROPSHEET_SetHeaderTitleA(HWND hwndDlg, UINT page_index, const char
titleW = heap_strdupAtoW(title); PROPSHEET_SetHeaderTitleW(hwndDlg, page_index, titleW); - Free(titleW); + free(titleW); }
/****************************************************************************** @@ -2696,7 +2675,7 @@ static void PROPSHEET_SetHeaderSubTitleA(HWND hwndDlg, UINT page_index, const ch
subtitleW = heap_strdupAtoW(subtitle); PROPSHEET_SetHeaderSubTitleW(hwndDlg, page_index, subtitleW); - Free(subtitleW); + free(subtitleW); }
/****************************************************************************** @@ -2845,7 +2824,7 @@ static void PROPSHEET_CleanUp(HWND hwndDlg) TRACE("\n"); if (!psInfo) return; if (!IS_INTRESOURCE(psInfo->ppshheader.pszCaption)) - Free ((LPVOID)psInfo->ppshheader.pszCaption); + free ((LPVOID)psInfo->ppshheader.pszCaption);
for (i = 0; i < psInfo->nPages; i++) { @@ -2864,7 +2843,7 @@ static void PROPSHEET_CleanUp(HWND hwndDlg) DestroyWindow(psInfo->proppage[i].hwndPage);
if (flags & PSP_USETITLE) - Free ((LPVOID)psInfo->proppage[i].pszText); + free ((LPVOID)psInfo->proppage[i].pszText);
DestroyPropertySheetPage(psInfo->proppage[i].hpage); } @@ -2879,8 +2858,8 @@ static void PROPSHEET_CleanUp(HWND hwndDlg) (!(psInfo->ppshheader.dwFlags & PSH_USEHBMHEADER)) ) DeleteObject(psInfo->ppshheader.u5.hbmHeader);
- Free(psInfo->proppage); - Free(psInfo->strPropertiesFor); + free(psInfo->proppage); + free(psInfo->strPropertiesFor); ImageList_Destroy(psInfo->hImageList);
GlobalFree(psInfo); @@ -2967,7 +2946,7 @@ INT_PTR WINAPI PropertySheetA(LPCPROPSHEETHEADERA lppsh)
PROPSHEET_CollectSheetInfoA(lppsh, psInfo);
- psInfo->proppage = Alloc(sizeof(PropPageInfo) * lppsh->nPages); + psInfo->proppage = malloc(sizeof(PropPageInfo) * lppsh->nPages); pByte = (const BYTE*) psInfo->ppshheader.u3.ppsp;
for (n = i = 0; i < lppsh->nPages; i++, n++) @@ -3018,7 +2997,7 @@ INT_PTR WINAPI PropertySheetW(LPCPROPSHEETHEADERW lppsh)
PROPSHEET_CollectSheetInfoW(lppsh, psInfo);
- psInfo->proppage = Alloc(sizeof(PropPageInfo) * lppsh->nPages); + psInfo->proppage = malloc(sizeof(PropPageInfo) * lppsh->nPages); pByte = (const BYTE*) psInfo->ppshheader.u3.ppsp;
for (n = i = 0; i < lppsh->nPages; i++, n++) @@ -3077,7 +3056,7 @@ HPROPSHEETPAGE WINAPI CreatePropertySheetPageA( if (lpPropSheetPage->dwSize < PROPSHEETPAGEA_V1_SIZE) return NULL;
- ret = Alloc(FIELD_OFFSET(struct _PSP, data[lpPropSheetPage->dwSize])); + ret = malloc(FIELD_OFFSET(struct _PSP, data[lpPropSheetPage->dwSize])); ret->magic = HPROPSHEETPAGE_MAGIC; ppsp = &ret->pspA; memcpy(ppsp, lpPropSheetPage, lpPropSheetPage->dwSize); @@ -3085,19 +3064,19 @@ HPROPSHEETPAGE WINAPI CreatePropertySheetPageA( if ( !(ppsp->dwFlags & PSP_DLGINDIRECT) ) { if (!IS_INTRESOURCE( ppsp->u.pszTemplate )) - ppsp->u.pszTemplate = heap_strdupA( lpPropSheetPage->u.pszTemplate ); + ppsp->u.pszTemplate = strdup( lpPropSheetPage->u.pszTemplate ); }
if (ppsp->dwFlags & PSP_USEICONID) { if (!IS_INTRESOURCE( ppsp->u2.pszIcon )) - ppsp->u2.pszIcon = heap_strdupA( lpPropSheetPage->u2.pszIcon ); + ppsp->u2.pszIcon = strdup( lpPropSheetPage->u2.pszIcon ); }
if (ppsp->dwFlags & PSP_USETITLE) { if (!IS_INTRESOURCE( ppsp->pszTitle )) - ppsp->pszTitle = heap_strdupA( lpPropSheetPage->pszTitle ); + ppsp->pszTitle = strdup( lpPropSheetPage->pszTitle ); }
if (ppsp->dwFlags & PSP_HIDEHEADER) @@ -3106,13 +3085,13 @@ HPROPSHEETPAGE WINAPI CreatePropertySheetPageA( if (ppsp->dwFlags & PSP_USEHEADERTITLE) { if (!IS_INTRESOURCE( ppsp->pszHeaderTitle )) - ppsp->pszHeaderTitle = heap_strdupA( lpPropSheetPage->pszHeaderTitle ); + ppsp->pszHeaderTitle = strdup( lpPropSheetPage->pszHeaderTitle ); }
if (ppsp->dwFlags & PSP_USEHEADERSUBTITLE) { if (!IS_INTRESOURCE( ppsp->pszHeaderSubTitle )) - ppsp->pszHeaderSubTitle = heap_strdupA( lpPropSheetPage->pszHeaderSubTitle ); + ppsp->pszHeaderSubTitle = strdup( lpPropSheetPage->pszHeaderSubTitle ); }
HPSP_call_callback(ret, PSPCB_ADDREF); @@ -3132,7 +3111,7 @@ HPROPSHEETPAGE WINAPI CreatePropertySheetPageW(LPCPROPSHEETPAGEW lpPropSheetPage if (lpPropSheetPage->dwSize < PROPSHEETPAGEW_V1_SIZE) return NULL;
- ret = Alloc(FIELD_OFFSET(struct _PSP, data[lpPropSheetPage->dwSize])); + ret = malloc(FIELD_OFFSET(struct _PSP, data[lpPropSheetPage->dwSize])); ret->magic = HPROPSHEETPAGE_MAGIC; ret->unicode = TRUE; ppsp = &ret->pspW; @@ -3141,19 +3120,19 @@ HPROPSHEETPAGE WINAPI CreatePropertySheetPageW(LPCPROPSHEETPAGEW lpPropSheetPage if ( !(ppsp->dwFlags & PSP_DLGINDIRECT) ) { if (!IS_INTRESOURCE( ppsp->u.pszTemplate )) - ppsp->u.pszTemplate = heap_strdupW( lpPropSheetPage->u.pszTemplate ); + ppsp->u.pszTemplate = wcsdup( lpPropSheetPage->u.pszTemplate ); }
if ( ppsp->dwFlags & PSP_USEICONID ) { if (!IS_INTRESOURCE( ppsp->u2.pszIcon )) - ppsp->u2.pszIcon = heap_strdupW( lpPropSheetPage->u2.pszIcon ); + ppsp->u2.pszIcon = wcsdup( lpPropSheetPage->u2.pszIcon ); }
if (ppsp->dwFlags & PSP_USETITLE) { if (!IS_INTRESOURCE( ppsp->pszTitle )) - ppsp->pszTitle = heap_strdupW( lpPropSheetPage->pszTitle ); + ppsp->pszTitle = wcsdup( lpPropSheetPage->pszTitle ); }
if (ppsp->dwFlags & PSP_HIDEHEADER) @@ -3162,13 +3141,13 @@ HPROPSHEETPAGE WINAPI CreatePropertySheetPageW(LPCPROPSHEETPAGEW lpPropSheetPage if (ppsp->dwFlags & PSP_USEHEADERTITLE) { if (!IS_INTRESOURCE( ppsp->pszHeaderTitle )) - ppsp->pszHeaderTitle = heap_strdupW( ppsp->pszHeaderTitle ); + ppsp->pszHeaderTitle = wcsdup( ppsp->pszHeaderTitle ); }
if (ppsp->dwFlags & PSP_USEHEADERSUBTITLE) { if (!IS_INTRESOURCE( ppsp->pszHeaderSubTitle )) - ppsp->pszHeaderSubTitle = heap_strdupW( ppsp->pszHeaderSubTitle ); + ppsp->pszHeaderSubTitle = wcsdup( ppsp->pszHeaderSubTitle ); }
HPSP_call_callback(ret, PSPCB_ADDREF); @@ -3198,41 +3177,41 @@ BOOL WINAPI DestroyPropertySheetPage(HPROPSHEETPAGE hpsp) PROPSHEETPAGEW *psp = &hpsp->pspW;
if (!(psp->dwFlags & PSP_DLGINDIRECT) && !IS_INTRESOURCE(psp->u.pszTemplate)) - Free((void *)psp->u.pszTemplate); + free((void *)psp->u.pszTemplate);
if ((psp->dwFlags & PSP_USEICONID) && !IS_INTRESOURCE(psp->u2.pszIcon)) - Free((void *)psp->u2.pszIcon); + free((void *)psp->u2.pszIcon);
if ((psp->dwFlags & PSP_USETITLE) && !IS_INTRESOURCE(psp->pszTitle)) - Free((void *)psp->pszTitle); + free((void *)psp->pszTitle);
if ((psp->dwFlags & PSP_USEHEADERTITLE) && !IS_INTRESOURCE(psp->pszHeaderTitle)) - Free((void *)psp->pszHeaderTitle); + free((void *)psp->pszHeaderTitle);
if ((psp->dwFlags & PSP_USEHEADERSUBTITLE) && !IS_INTRESOURCE(psp->pszHeaderSubTitle)) - Free((void *)psp->pszHeaderSubTitle); + free((void *)psp->pszHeaderSubTitle); } else { PROPSHEETPAGEA *psp = &hpsp->pspA;
if (!(psp->dwFlags & PSP_DLGINDIRECT) && !IS_INTRESOURCE(psp->u.pszTemplate)) - Free((void *)psp->u.pszTemplate); + free((void *)psp->u.pszTemplate);
if ((psp->dwFlags & PSP_USEICONID) && !IS_INTRESOURCE(psp->u2.pszIcon)) - Free((void *)psp->u2.pszIcon); + free((void *)psp->u2.pszIcon);
if ((psp->dwFlags & PSP_USETITLE) && !IS_INTRESOURCE(psp->pszTitle)) - Free((void *)psp->pszTitle); + free((void *)psp->pszTitle);
if ((psp->dwFlags & PSP_USEHEADERTITLE) && !IS_INTRESOURCE(psp->pszHeaderTitle)) - Free((void *)psp->pszHeaderTitle); + free((void *)psp->pszHeaderTitle);
if ((psp->dwFlags & PSP_USEHEADERSUBTITLE) && !IS_INTRESOURCE(psp->pszHeaderSubTitle)) - Free((void *)psp->pszHeaderSubTitle); + free((void *)psp->pszHeaderSubTitle); }
- Free(hpsp); + free(hpsp); return TRUE; }
@@ -3531,7 +3510,7 @@ PROPSHEET_DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) case WM_INITDIALOG: { PropSheetInfo* psInfo = (PropSheetInfo*) lParam; - WCHAR* strCaption = Alloc(MAX_CAPTION_LENGTH*sizeof(WCHAR)); + WCHAR* strCaption = malloc(MAX_CAPTION_LENGTH*sizeof(WCHAR)); HWND hwndTabCtrl = GetDlgItem(hwnd, IDC_TABCONTROL); int idx; LOGFONTW logFont;