The big win here is getting rid of the reimplementation of wcsdup.
From: Alex Henrie alexhenrie24@gmail.com
The big win here is getting rid of the reimplementation of wcsdup. --- dlls/comdlg32/printdlg.c | 196 ++++++++++++++++++--------------------- 1 file changed, 91 insertions(+), 105 deletions(-)
diff --git a/dlls/comdlg32/printdlg.c b/dlls/comdlg32/printdlg.c index a466687dca3..5925ef64a20 100644 --- a/dlls/comdlg32/printdlg.c +++ b/dlls/comdlg32/printdlg.c @@ -145,18 +145,6 @@ static const WCHAR printdlg_prop[] = L"__WINE_PRINTDLGDATA"; static const WCHAR pagesetupdlg_prop[] = L"__WINE_PAGESETUPDLGDATA";
-static LPWSTR strdupW(LPCWSTR p) -{ - LPWSTR ret; - DWORD len; - - if(!p) return NULL; - len = (lstrlenW(p) + 1) * sizeof(WCHAR); - ret = HeapAlloc(GetProcessHeap(), 0, len); - memcpy(ret, p, len); - return ret; -} - /*********************************************************************** * get_driver_info [internal] * @@ -171,7 +159,7 @@ static DRIVER_INFO_3W * get_driver_infoW(HANDLE hprn)
res = GetPrinterDriverW(hprn, NULL, 3, NULL, 0, &needed); if (!res && (GetLastError() == ERROR_INSUFFICIENT_BUFFER)) { - di3 = HeapAlloc(GetProcessHeap(), 0, needed); + di3 = malloc(needed); res = GetPrinterDriverW(hprn, NULL, 3, (LPBYTE)di3, needed, &needed); }
@@ -179,7 +167,7 @@ static DRIVER_INFO_3W * get_driver_infoW(HANDLE hprn) return di3;
TRACE("GetPrinterDriverW failed with %lu\n", GetLastError()); - HeapFree(GetProcessHeap(), 0, di3); + free(di3); return NULL; }
@@ -191,7 +179,7 @@ static DRIVER_INFO_3A * get_driver_infoA(HANDLE hprn)
res = GetPrinterDriverA(hprn, NULL, 3, NULL, 0, &needed); if (!res && (GetLastError() == ERROR_INSUFFICIENT_BUFFER)) { - di3 = HeapAlloc(GetProcessHeap(), 0, needed); + di3 = malloc(needed); res = GetPrinterDriverA(hprn, NULL, 3, (LPBYTE)di3, needed, &needed); }
@@ -199,7 +187,7 @@ static DRIVER_INFO_3A * get_driver_infoA(HANDLE hprn) return di3;
TRACE("GetPrinterDriverA failed with %lu\n", GetLastError()); - HeapFree(GetProcessHeap(), 0, di3); + free(di3); return NULL; }
@@ -218,7 +206,7 @@ static PRINTER_INFO_2W * get_printer_infoW(HANDLE hprn)
res = GetPrinterW(hprn, 2, NULL, 0, &needed); if (!res && (GetLastError() == ERROR_INSUFFICIENT_BUFFER)) { - pi2 = HeapAlloc(GetProcessHeap(), 0, needed); + pi2 = malloc(needed); res = GetPrinterW(hprn, 2, (LPBYTE)pi2, needed, &needed); }
@@ -226,7 +214,7 @@ static PRINTER_INFO_2W * get_printer_infoW(HANDLE hprn) return pi2;
TRACE("GetPrinterW failed with %lu\n", GetLastError()); - HeapFree(GetProcessHeap(), 0, pi2); + free(pi2); return NULL; }
@@ -238,7 +226,7 @@ static PRINTER_INFO_2A * get_printer_infoA(HANDLE hprn)
res = GetPrinterA(hprn, 2, NULL, 0, &needed); if (!res && (GetLastError() == ERROR_INSUFFICIENT_BUFFER)) { - pi2 = HeapAlloc(GetProcessHeap(), 0, needed); + pi2 = malloc(needed); res = GetPrinterA(hprn, 2, (LPBYTE)pi2, needed, &needed); }
@@ -246,7 +234,7 @@ static PRINTER_INFO_2A * get_printer_infoA(HANDLE hprn) return pi2;
TRACE("GetPrinterA failed with %lu\n", GetLastError()); - HeapFree(GetProcessHeap(), 0, pi2); + free(pi2); return NULL; }
@@ -326,7 +314,7 @@ static DEVMODEA *convert_to_devmodeA(const DEVMODEW *dmW) size = dmW->dmSize - CCHDEVICENAME - ((dmW->dmSize > FIELD_OFFSET(DEVMODEW, dmFormName)) ? CCHFORMNAME : 0);
- dmA = HeapAlloc(GetProcessHeap(), 0, size + dmW->dmDriverExtra); + dmA = malloc(size + dmW->dmDriverExtra); if (!dmA) return NULL;
WideCharToMultiByte(CP_ACP, 0, dmW->dmDeviceName, -1, @@ -392,7 +380,7 @@ static INT PRINTDLG_SetUpPrinterListComboA(HWND hDlg, UINT id, LPCSTR name) INT i; LPPRINTER_INFO_2A pi; EnumPrintersA(PRINTER_ENUM_LOCAL, NULL, 2, NULL, 0, &needed, &num); - pi = HeapAlloc(GetProcessHeap(), 0, needed); + pi = malloc(needed); EnumPrintersA(PRINTER_ENUM_LOCAL, NULL, 2, (LPBYTE)pi, needed, &needed, &num);
@@ -402,7 +390,7 @@ static INT PRINTDLG_SetUpPrinterListComboA(HWND hDlg, UINT id, LPCSTR name) SendDlgItemMessageA(hDlg, id, CB_ADDSTRING, 0, (LPARAM)pi[i].pPrinterName ); } - HeapFree(GetProcessHeap(), 0, pi); + free(pi); if(!name || (i = SendDlgItemMessageA(hDlg, id, CB_FINDSTRINGEXACT, -1, (LPARAM)name)) == CB_ERR) { @@ -428,7 +416,7 @@ static INT PRINTDLG_SetUpPrinterListComboW(HWND hDlg, UINT id, LPCWSTR name) INT i; LPPRINTER_INFO_2W pi; EnumPrintersW(PRINTER_ENUM_LOCAL, NULL, 2, NULL, 0, &needed, &num); - pi = HeapAlloc(GetProcessHeap(), 0, needed); + pi = malloc(needed); EnumPrintersW(PRINTER_ENUM_LOCAL, NULL, 2, (LPBYTE)pi, needed, &needed, &num);
@@ -436,7 +424,7 @@ static INT PRINTDLG_SetUpPrinterListComboW(HWND hDlg, UINT id, LPCWSTR name) SendDlgItemMessageW(hDlg, id, CB_ADDSTRING, 0, (LPARAM)pi[i].pPrinterName ); } - HeapFree(GetProcessHeap(), 0, pi); + free(pi); if(!name || (i = SendDlgItemMessageW(hDlg, id, CB_FINDSTRINGEXACT, -1, (LPARAM)name)) == CB_ERR) { @@ -830,8 +818,8 @@ static BOOL PRINTDLG_SetUpPaperComboBoxA(HWND hDlg, NrOfEntries = 0; }
- Names = HeapAlloc(GetProcessHeap(),0, NrOfEntries*sizeof(char)*NamesSize); - Words = HeapAlloc(GetProcessHeap(),0, NrOfEntries*sizeof(WORD)); + Names = malloc(NrOfEntries * sizeof(char) * NamesSize); + Words = malloc(NrOfEntries * sizeof(WORD)); DeviceCapabilitiesA(PrinterName, PortName, fwCapability_Names, Names, dm); NrOfEntries = DeviceCapabilitiesA(PrinterName, PortName, fwCapability_Words, (LPSTR)Words, dm); @@ -875,8 +863,8 @@ static BOOL PRINTDLG_SetUpPaperComboBoxA(HWND hDlg,
SendDlgItemMessageA(hDlg, nIDComboBox, CB_SETCURSEL, Sel, 0);
- HeapFree(GetProcessHeap(),0,Words); - HeapFree(GetProcessHeap(),0,Names); + free(Words); + free(Names); return TRUE; }
@@ -940,8 +928,8 @@ static BOOL PRINTDLG_SetUpPaperComboBoxW(HWND hDlg, NrOfEntries = 0; }
- Names = HeapAlloc(GetProcessHeap(),0, NrOfEntries*sizeof(WCHAR)*NamesSize); - Words = HeapAlloc(GetProcessHeap(),0, NrOfEntries*sizeof(WORD)); + Names = malloc(NrOfEntries * sizeof(WCHAR) * NamesSize); + Words = malloc(NrOfEntries * sizeof(WORD)); DeviceCapabilitiesW(PrinterName, PortName, fwCapability_Names, Names, dm); NrOfEntries = DeviceCapabilitiesW(PrinterName, PortName, fwCapability_Words, Words, dm); @@ -985,8 +973,8 @@ static BOOL PRINTDLG_SetUpPaperComboBoxW(HWND hDlg,
SendDlgItemMessageW(hDlg, nIDComboBox, CB_SETCURSEL, Sel, 0);
- HeapFree(GetProcessHeap(),0,Words); - HeapFree(GetProcessHeap(),0,Names); + free(Words); + free(Names); return TRUE; }
@@ -1078,18 +1066,18 @@ static BOOL PRINTDLG_ChangePrinterA(HWND hDlg, char *name, PRINT_PTRA *PrintStru DWORD needed; HANDLE hprn;
- HeapFree(GetProcessHeap(),0, PrintStructures->lpPrinterInfo); - HeapFree(GetProcessHeap(),0, PrintStructures->lpDriverInfo); + free(PrintStructures->lpPrinterInfo); + free(PrintStructures->lpDriverInfo); if(!OpenPrinterA(name, &hprn, NULL)) { ERR("Can't open printer %s\n", name); return FALSE; } GetPrinterA(hprn, 2, NULL, 0, &needed); - PrintStructures->lpPrinterInfo = HeapAlloc(GetProcessHeap(),0,needed); + PrintStructures->lpPrinterInfo = malloc(needed); GetPrinterA(hprn, 2, (LPBYTE)PrintStructures->lpPrinterInfo, needed, &needed); GetPrinterDriverA(hprn, NULL, 3, NULL, 0, &needed); - PrintStructures->lpDriverInfo = HeapAlloc(GetProcessHeap(),0,needed); + PrintStructures->lpDriverInfo = malloc(needed); if (!GetPrinterDriverA(hprn, NULL, 3, (LPBYTE)PrintStructures->lpDriverInfo, needed, &needed)) { ERR("GetPrinterDriverA failed for %s, fix your config!\n",PrintStructures->lpPrinterInfo->pPrinterName); @@ -1099,7 +1087,7 @@ static BOOL PRINTDLG_ChangePrinterA(HWND hDlg, char *name, PRINT_PTRA *PrintStru
PRINTDLG_UpdatePrinterInfoTextsA(hDlg, PrintStructures->lpPrinterInfo);
- HeapFree(GetProcessHeap(), 0, PrintStructures->lpDevMode); + free(PrintStructures->lpDevMode); PrintStructures->lpDevMode = NULL;
dmSize = DocumentPropertiesA(0, 0, name, NULL, NULL, 0); @@ -1107,7 +1095,7 @@ static BOOL PRINTDLG_ChangePrinterA(HWND hDlg, char *name, PRINT_PTRA *PrintStru ERR("DocumentProperties fails on %s\n", debugstr_a(name)); return FALSE; } - PrintStructures->lpDevMode = HeapAlloc(GetProcessHeap(), 0, dmSize); + PrintStructures->lpDevMode = malloc(dmSize); dmSize = DocumentPropertiesA(0, 0, name, PrintStructures->lpDevMode, NULL, DM_OUT_BUFFER); if(lppd->hDevMode && (lpdm = GlobalLock(lppd->hDevMode)) && @@ -1213,7 +1201,7 @@ static BOOL PRINTDLG_ChangePrinterA(HWND hDlg, char *name, PRINT_PTRA *PrintStru PrintStructures->lpPrinterInfo->pPrinterName, 0, lpdm);
- Resolutions = HeapAlloc(GetProcessHeap(), 0, numResolutions*sizeof(LONG)*2); + Resolutions = malloc(numResolutions * sizeof(LONG) * 2); DeviceCapabilitiesA(PrintStructures->lpPrinterInfo->pPrinterName, PrintStructures->lpPrinterInfo->pPortName, DC_ENUMRESOLUTIONS, (LPSTR)Resolutions, lpdm); @@ -1247,7 +1235,7 @@ static BOOL PRINTDLG_ChangePrinterA(HWND hDlg, char *name, PRINT_PTRA *PrintStru
SendMessageA(hQuality, CB_SETITEMDATA, Index, MAKELONG(dpiX,dpiY)); } - HeapFree(GetProcessHeap(), 0, Resolutions); + free(Resolutions); } } } else { /* PD_PRINTSETUP */ @@ -1285,18 +1273,18 @@ static BOOL PRINTDLG_ChangePrinterW(HWND hDlg, WCHAR *name, DWORD needed; HANDLE hprn;
- HeapFree(GetProcessHeap(),0, PrintStructures->lpPrinterInfo); - HeapFree(GetProcessHeap(),0, PrintStructures->lpDriverInfo); + free(PrintStructures->lpPrinterInfo); + free(PrintStructures->lpDriverInfo); if(!OpenPrinterW(name, &hprn, NULL)) { ERR("Can't open printer %s\n", debugstr_w(name)); return FALSE; } GetPrinterW(hprn, 2, NULL, 0, &needed); - PrintStructures->lpPrinterInfo = HeapAlloc(GetProcessHeap(),0,needed); + PrintStructures->lpPrinterInfo = malloc(needed); GetPrinterW(hprn, 2, (LPBYTE)PrintStructures->lpPrinterInfo, needed, &needed); GetPrinterDriverW(hprn, NULL, 3, NULL, 0, &needed); - PrintStructures->lpDriverInfo = HeapAlloc(GetProcessHeap(),0,needed); + PrintStructures->lpDriverInfo = malloc(needed); if (!GetPrinterDriverW(hprn, NULL, 3, (LPBYTE)PrintStructures->lpDriverInfo, needed, &needed)) { ERR("GetPrinterDriverA failed for %s, fix your config!\n",debugstr_w(PrintStructures->lpPrinterInfo->pPrinterName)); @@ -1306,7 +1294,7 @@ static BOOL PRINTDLG_ChangePrinterW(HWND hDlg, WCHAR *name,
PRINTDLG_UpdatePrinterInfoTextsW(hDlg, PrintStructures->lpPrinterInfo);
- HeapFree(GetProcessHeap(), 0, PrintStructures->lpDevMode); + free(PrintStructures->lpDevMode); PrintStructures->lpDevMode = NULL;
dmSize = DocumentPropertiesW(0, 0, name, NULL, NULL, 0); @@ -1314,7 +1302,7 @@ static BOOL PRINTDLG_ChangePrinterW(HWND hDlg, WCHAR *name, ERR("DocumentProperties fails on %s\n", debugstr_w(name)); return FALSE; } - PrintStructures->lpDevMode = HeapAlloc(GetProcessHeap(), 0, dmSize); + PrintStructures->lpDevMode = malloc(dmSize); dmSize = DocumentPropertiesW(0, 0, name, PrintStructures->lpDevMode, NULL, DM_OUT_BUFFER); if(lppd->hDevMode && (lpdm = GlobalLock(lppd->hDevMode)) && @@ -1545,10 +1533,10 @@ static LRESULT PRINTDLG_WMInitDialog(HWND hDlg, if(pdn) GlobalUnlock(lppd->hDevNames);
/* Now find selected printer and update rest of dlg */ - name = HeapAlloc(GetProcessHeap(),0,256); + name = malloc(256); if (GetDlgItemTextA(hDlg, comboID, name, 255)) PRINTDLG_ChangePrinterA(hDlg, name, PrintStructures); - HeapFree(GetProcessHeap(),0,name); + free(name); } else { /* else use default printer */ char name[200]; @@ -1654,10 +1642,10 @@ static LRESULT PRINTDLG_WMInitDialogW(HWND hDlg,
/* Now find selected printer and update rest of dlg */ /* ansi is ok here */ - name = HeapAlloc(GetProcessHeap(),0,256*sizeof(WCHAR)); + name = malloc(256 * sizeof(WCHAR)); if (GetDlgItemTextW(hDlg, comboID, name, 255)) PRINTDLG_ChangePrinterW(hDlg, name, PrintStructures); - HeapFree(GetProcessHeap(),0,name); + free(name); } else { /* else use default printer */ WCHAR name[200]; @@ -1779,10 +1767,10 @@ static LRESULT PRINTDLG_WMCommandA(HWND hDlg, WPARAM wParam, char *PrinterName; INT index = SendDlgItemMessageW(hDlg, LOWORD(wParam), CB_GETCURSEL, 0, 0); INT length = SendDlgItemMessageW(hDlg, LOWORD(wParam), CB_GETLBTEXTLEN, index, 0); - PrinterName = HeapAlloc(GetProcessHeap(),0,length+1); + PrinterName = malloc(length + 1); SendDlgItemMessageA(hDlg, LOWORD(wParam), CB_GETLBTEXT, index, (LPARAM)PrinterName); PRINTDLG_ChangePrinterA(hDlg, PrinterName, PrintStructures); - HeapFree(GetProcessHeap(),0,PrinterName); + free(PrinterName); } break;
@@ -1937,10 +1925,10 @@ static LRESULT PRINTDLG_WMCommandW(HWND hDlg, WPARAM wParam, INT index = SendDlgItemMessageW(hDlg, LOWORD(wParam), CB_GETCURSEL, 0, 0); INT length = SendDlgItemMessageW(hDlg, LOWORD(wParam), CB_GETLBTEXTLEN, index, 0);
- PrinterName = HeapAlloc(GetProcessHeap(),0,sizeof(WCHAR)*(length+1)); + PrinterName = malloc(sizeof(WCHAR) * (length + 1)); SendDlgItemMessageW(hDlg, LOWORD(wParam), CB_GETLBTEXT, index, (LPARAM)PrinterName); PRINTDLG_ChangePrinterW(hDlg, PrinterName, PrintStructures); - HeapFree(GetProcessHeap(),0,PrinterName); + free(PrinterName); } break;
@@ -2279,16 +2267,16 @@ BOOL WINAPI PrintDlgA(LPPRINTDLGA lppd) }
GetPrinterA(hprn, 2, NULL, 0, &needed); - pbuf = HeapAlloc(GetProcessHeap(), 0, needed); + pbuf = malloc(needed); GetPrinterA(hprn, 2, (LPBYTE)pbuf, needed, &needed);
GetPrinterDriverA(hprn, NULL, 3, NULL, 0, &needed); - dbuf = HeapAlloc(GetProcessHeap(),0,needed); + dbuf = malloc(needed); if (!GetPrinterDriverA(hprn, NULL, 3, (LPBYTE)dbuf, needed, &needed)) { ERR("GetPrinterDriverA failed, le %ld, fix your config for printer %s!\n", GetLastError(),pbuf->pPrinterName); - HeapFree(GetProcessHeap(), 0, dbuf); - HeapFree(GetProcessHeap(), 0, pbuf); + free(dbuf); + free(pbuf); COMDLG32_SetCommDlgExtendedError(PDERR_RETDEFFAILURE); return FALSE; } @@ -2304,8 +2292,8 @@ BOOL WINAPI PrintDlgA(LPPRINTDLGA lppd) memcpy(ptr, pbuf->pDevMode, pbuf->pDevMode->dmSize + pbuf->pDevMode->dmDriverExtra); GlobalUnlock(lppd->hDevMode); - HeapFree(GetProcessHeap(), 0, pbuf); - HeapFree(GetProcessHeap(), 0, dbuf); + free(pbuf); + free(dbuf); bRet = TRUE; } else { HGLOBAL hDlgTmpl; @@ -2325,8 +2313,7 @@ BOOL WINAPI PrintDlgA(LPPRINTDLGA lppd) return FALSE; }
- PrintStructures = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(PRINT_PTRA)); + PrintStructures = calloc(1, sizeof(PRINT_PTRA)); PrintStructures->lpPrintDlg = lppd;
/* and create & process the dialog . @@ -2362,10 +2349,10 @@ BOOL WINAPI PrintDlgA(LPPRINTDLGA lppd) ); GlobalUnlock(lppd->hDevMode); } - HeapFree(GetProcessHeap(), 0, PrintStructures->lpDevMode); - HeapFree(GetProcessHeap(), 0, PrintStructures->lpPrinterInfo); - HeapFree(GetProcessHeap(), 0, PrintStructures->lpDriverInfo); - HeapFree(GetProcessHeap(), 0, PrintStructures); + free(PrintStructures->lpDevMode); + free(PrintStructures->lpPrinterInfo); + free(PrintStructures->lpDriverInfo); + free(PrintStructures); } if(bRet && (lppd->Flags & PD_RETURNDC || lppd->Flags & PD_RETURNIC)) bRet = PRINTDLG_CreateDCA(lppd); @@ -2430,16 +2417,16 @@ BOOL WINAPI PrintDlgW(LPPRINTDLGW lppd) }
GetPrinterW(hprn, 2, NULL, 0, &needed); - pbuf = HeapAlloc(GetProcessHeap(), 0, needed); + pbuf = malloc(needed); GetPrinterW(hprn, 2, (LPBYTE)pbuf, needed, &needed);
GetPrinterDriverW(hprn, NULL, 3, NULL, 0, &needed); - dbuf = HeapAlloc(GetProcessHeap(),0,needed); + dbuf = malloc(needed); if (!GetPrinterDriverW(hprn, NULL, 3, (LPBYTE)dbuf, needed, &needed)) { ERR("GetPrinterDriverA failed, le %ld, fix your config for printer %s!\n", GetLastError(),debugstr_w(pbuf->pPrinterName)); - HeapFree(GetProcessHeap(), 0, dbuf); - HeapFree(GetProcessHeap(), 0, pbuf); + free(dbuf); + free(pbuf); COMDLG32_SetCommDlgExtendedError(PDERR_RETDEFFAILURE); return FALSE; } @@ -2455,8 +2442,8 @@ BOOL WINAPI PrintDlgW(LPPRINTDLGW lppd) memcpy(ptr, pbuf->pDevMode, pbuf->pDevMode->dmSize + pbuf->pDevMode->dmDriverExtra); GlobalUnlock(lppd->hDevMode); - HeapFree(GetProcessHeap(), 0, pbuf); - HeapFree(GetProcessHeap(), 0, dbuf); + free(pbuf); + free(dbuf); bRet = TRUE; } else { HGLOBAL hDlgTmpl; @@ -2476,8 +2463,7 @@ BOOL WINAPI PrintDlgW(LPPRINTDLGW lppd) return FALSE; }
- PrintStructures = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(PRINT_PTRW)); + PrintStructures = calloc(1, sizeof(PRINT_PTRW)); PrintStructures->lpPrintDlg = lppd;
/* and create & process the dialog . @@ -2529,10 +2515,10 @@ BOOL WINAPI PrintDlgW(LPPRINTDLGW lppd) ); GlobalUnlock(lppd->hDevMode); } - HeapFree(GetProcessHeap(), 0, PrintStructures->lpDevMode); - HeapFree(GetProcessHeap(), 0, PrintStructures->lpPrinterInfo); - HeapFree(GetProcessHeap(), 0, PrintStructures->lpDriverInfo); - HeapFree(GetProcessHeap(), 0, PrintStructures); + free(PrintStructures->lpDevMode); + free(PrintStructures->lpPrinterInfo); + free(PrintStructures->lpDriverInfo); + free(PrintStructures); } if(bRet && (lppd->Flags & PD_RETURNDC || lppd->Flags & PD_RETURNIC)) bRet = PRINTDLG_CreateDCW(lppd); @@ -2766,11 +2752,11 @@ static WCHAR *pagesetup_get_a_devname(const pagesetup_data *data, devnames_name
dn = GlobalLock(data->u.dlgw->hDevNames); if(data->unicode) - name = strdupW((WCHAR *)dn + get_devname_offset(dn, which)); + name = wcsdup((WCHAR *)dn + get_devname_offset(dn, which)); else { int len = MultiByteToWideChar(CP_ACP, 0, (char*)dn + get_devname_offset(dn, which), -1, NULL, 0); - name = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + name = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, (char*)dn + get_devname_offset(dn, which), -1, name, len); } GlobalUnlock(data->u.dlgw->hDevNames); @@ -2794,7 +2780,7 @@ static WCHAR *pagesetup_get_portname(const pagesetup_data *data)
static void pagesetup_release_a_devname(const pagesetup_data *data, WCHAR *name) { - HeapFree(GetProcessHeap(), 0, name); + free(name); }
static void pagesetup_set_devnames(pagesetup_data *data, LPCWSTR drv, LPCWSTR devname, LPCWSTR port) @@ -2873,7 +2859,7 @@ static DEVMODEW *pagesetup_get_devmode(const pagesetup_data *data) { /* We make a copy even in the unicode case because the ptr may get passed back to us in pagesetup_set_devmode. */ - ret = HeapAlloc(GetProcessHeap(), 0, dm->dmSize + dm->dmDriverExtra); + ret = malloc(dm->dmSize + dm->dmDriverExtra); memcpy(ret, dm, dm->dmSize + dm->dmDriverExtra); } else @@ -2885,7 +2871,7 @@ static DEVMODEW *pagesetup_get_devmode(const pagesetup_data *data)
static void pagesetup_release_devmode(const pagesetup_data *data, DEVMODEW *dm) { - HeapFree(GetProcessHeap(), 0, dm); + free(dm); }
static void pagesetup_set_devmode(pagesetup_data *data, DEVMODEW *dm) @@ -2915,7 +2901,7 @@ static void pagesetup_set_devmode(pagesetup_data *data, DEVMODEW *dm) dst = GlobalLock(data->u.dlgw->hDevMode); memcpy(dst, src, size); GlobalUnlock(data->u.dlgw->hDevMode); - HeapFree(GetProcessHeap(), 0, dmA); + free(dmA); }
static inline POINT *pagesetup_get_papersize_pt(const pagesetup_data *data) @@ -2978,8 +2964,8 @@ static BOOL pagesetup_update_papersize(pagesetup_data *data) goto end; }
- words = HeapAlloc(GetProcessHeap(), 0, num * sizeof(WORD)); - points = HeapAlloc(GetProcessHeap(), 0, num * sizeof(POINT)); + words = malloc(num * sizeof(WORD)); + points = malloc(num * sizeof(POINT));
if (num != DeviceCapabilitiesW(devname, portname, DC_PAPERS, (LPWSTR)words, dm)) { @@ -3015,8 +3001,8 @@ static BOOL pagesetup_update_papersize(pagesetup_data *data) retval = TRUE;
end: - HeapFree(GetProcessHeap(), 0, words); - HeapFree(GetProcessHeap(), 0, points); + free(words); + free(points); pagesetup_release_a_devname(data, portname); pagesetup_release_a_devname(data, devname); pagesetup_release_devmode(data, dm); @@ -3046,10 +3032,10 @@ static BOOL pagesetup_change_printer(LPWSTR name, pagesetup_data *data) }
GetPrinterW(hprn, 2, NULL, 0, &needed); - prn_info = HeapAlloc(GetProcessHeap(), 0, needed); + prn_info = malloc(needed); GetPrinterW(hprn, 2, (LPBYTE)prn_info, needed, &needed); GetPrinterDriverW(hprn, NULL, 3, NULL, 0, &needed); - drv_info = HeapAlloc(GetProcessHeap(), 0, needed); + drv_info = malloc(needed); if(!GetPrinterDriverW(hprn, NULL, 3, (LPBYTE)drv_info, needed, &needed)) { ERR("GetPrinterDriverA failed for %s, fix your config!\n", debugstr_w(prn_info->pPrinterName)); @@ -3064,7 +3050,7 @@ static BOOL pagesetup_change_printer(LPWSTR name, pagesetup_data *data) goto end; }
- dm = HeapAlloc(GetProcessHeap(), 0, needed); + dm = malloc(needed); DocumentPropertiesW(0, 0, name, dm, NULL, DM_OUT_BUFFER);
pagesetup_set_devmode(data, dm); @@ -3073,9 +3059,9 @@ static BOOL pagesetup_change_printer(LPWSTR name, pagesetup_data *data)
retval = TRUE; end: - HeapFree(GetProcessHeap(), 0, dm); - HeapFree(GetProcessHeap(), 0, prn_info); - HeapFree(GetProcessHeap(), 0, drv_info); + free(dm); + free(prn_info); + free(drv_info); return retval; }
@@ -3381,11 +3367,11 @@ static BOOL pagesetup_wm_command(HWND hDlg, WPARAM wParam, LPARAM lParam, pagese WCHAR *name; INT index = SendDlgItemMessageW(hDlg, id, CB_GETCURSEL, 0, 0); INT length = SendDlgItemMessageW(hDlg, id, CB_GETLBTEXTLEN, index, 0); - name = HeapAlloc(GetProcessHeap(),0,sizeof(WCHAR)*(length+1)); + name = malloc(sizeof(WCHAR) * (length + 1)); SendDlgItemMessageW(hDlg, id, CB_GETLBTEXT, index, (LPARAM)name); pagesetup_change_printer(name, data); pagesetup_init_combos(hDlg, data); - HeapFree(GetProcessHeap(),0,name); + free(name); } break; case cmb2: /* Paper combo */ @@ -3757,7 +3743,7 @@ static WCHAR *get_default_printer(void) GetDefaultPrinterW(NULL, &len); if(len) { - name = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + name = malloc(len * sizeof(WCHAR)); GetDefaultPrinterW(name, &len); } return name; @@ -3859,7 +3845,7 @@ static BOOL pagesetup_common(pagesetup_data *data) return FALSE; } pagesetup_change_printer(def, data); - HeapFree(GetProcessHeap(), 0, def); + free(def); }
if (pagesetup_get_flags(data) & PSD_RETURNDEFAULT) @@ -4059,7 +4045,7 @@ HRESULT WINAPI PrintDlgExA(LPPRINTDLGEXA lppd) dbuf = get_driver_infoA(hprn); if (!dbuf) { - HeapFree(GetProcessHeap(), 0, pbuf); + free(pbuf); COMDLG32_SetCommDlgExtendedError(PDERR_RETDEFFAILURE); ClosePrinter(hprn); return E_FAIL; @@ -4125,8 +4111,8 @@ HRESULT WINAPI PrintDlgExA(LPPRINTDLGEXA lppd) else hr = E_FAIL;
- HeapFree(GetProcessHeap(), 0, pbuf); - HeapFree(GetProcessHeap(), 0, dbuf); + free(pbuf); + free(dbuf);
return hr; } @@ -4210,7 +4196,7 @@ HRESULT WINAPI PrintDlgExW(LPPRINTDLGEXW lppd) dbuf = get_driver_infoW(hprn); if (!dbuf) { - HeapFree(GetProcessHeap(), 0, pbuf); + free(pbuf); COMDLG32_SetCommDlgExtendedError(PDERR_RETDEFFAILURE); ClosePrinter(hprn); return E_FAIL; @@ -4273,8 +4259,8 @@ HRESULT WINAPI PrintDlgExW(LPPRINTDLGEXW lppd) else hr = E_FAIL;
- HeapFree(GetProcessHeap(), 0, pbuf); - HeapFree(GetProcessHeap(), 0, dbuf); + free(pbuf); + free(dbuf);
return hr; }
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=126213
Your paranoid android.
=== debian11 (32 bit report) ===
Report validation errors: advapi32:security has no test summary line (early exit of the main process?) advapi32:security has unaccounted for todo messages