From: Piotr Caban piotr@codeweavers.com
--- dlls/winspool.drv/info.c | 612 ++++++++++++++++++--------------------- 1 file changed, 275 insertions(+), 337 deletions(-)
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c index 22422f7e966..5a74cb29bd9 100644 --- a/dlls/winspool.drv/info.c +++ b/dlls/winspool.drv/info.c @@ -247,7 +247,7 @@ static LPWSTR strdupW(LPCWSTR p)
if(!p) return NULL; len = (wcslen( p ) + 1) * sizeof(WCHAR); - ret = HeapAlloc(GetProcessHeap(), 0, len); + ret = malloc(len); memcpy(ret, p, len); return ret; } @@ -257,7 +257,7 @@ static DEVMODEW *dup_devmode( const DEVMODEW *dm ) DEVMODEW *ret;
if (!dm) return NULL; - ret = HeapAlloc( GetProcessHeap(), 0, dm->dmSize + dm->dmDriverExtra ); + ret = malloc( dm->dmSize + dm->dmDriverExtra ); if (ret) memcpy( ret, dm, dm->dmSize + dm->dmDriverExtra ); return ret; } @@ -275,7 +275,7 @@ static DEVMODEA *DEVMODEdupWtoA( const DEVMODEW *dmW ) size = dmW->dmSize - CCHDEVICENAME - ((dmW->dmSize > FIELD_OFFSET( DEVMODEW, dmFormName )) ? CCHFORMNAME : 0);
- dmA = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, size + dmW->dmDriverExtra ); + dmA = calloc( 1, size + dmW->dmDriverExtra ); if (!dmA) return NULL;
WideCharToMultiByte( CP_ACP, 0, dmW->dmDeviceName, -1, @@ -307,11 +307,11 @@ static void packed_string_WtoA( WCHAR *strW ) char *str;
if (!len) return; - str = heap_alloc( size ); + str = malloc( size ); ret = WideCharToMultiByte( CP_ACP, 0, strW, len, str, size - 1, NULL, NULL ); memcpy( strW, str, ret ); memset( (BYTE *)strW + ret, 0, size - ret ); - heap_free( str ); + free( str ); }
/********************************************************************* @@ -381,12 +381,12 @@ static HKEY WINSPOOL_OpenDriverReg(const void *pEnvironment) if (!env) return NULL;
len = ARRAY_SIZE( driver_fmt ) + wcslen( env->envname ) + wcslen( env->versionregpath ); - buffer = heap_alloc( len * sizeof(WCHAR) ); + buffer = malloc( len * sizeof(WCHAR) ); if (buffer) { swprintf( buffer, len, driver_fmt, env->envname, env->versionregpath ); RegCreateKeyW( HKEY_LOCAL_MACHINE, buffer, &retval ); - heap_free( buffer ); + free( buffer ); } return retval; } @@ -436,7 +436,7 @@ static void release_config_module(config_module_t *config_module) { if (InterlockedDecrement(&config_module->ref)) return; FreeLibrary(config_module->module); - HeapFree(GetProcessHeap(), 0, config_module); + free(config_module); }
static config_module_t *get_config_module(const WCHAR *device, BOOL grab) @@ -513,7 +513,7 @@ static config_module_t *get_config_module(const WCHAR *device, BOOL grab) }
len = wcslen( device ); - if (!(ret = HeapAlloc(GetProcessHeap(), 0, FIELD_OFFSET(config_module_t, name[len + 1])))) + if (!(ret = malloc(FIELD_OFFSET(config_module_t, name[len + 1])))) goto ret;
ret->ref = 2; /* one for config_module and one for the caller */ @@ -671,7 +671,7 @@ static WCHAR *get_ppd_filename( const WCHAR *dir, const WCHAR *file_name ) static const WCHAR invalid_chars[] = L"*?<>|"/\"; int dir_len = wcslen( dir ), file_len = wcslen( file_name ); int len = (dir_len + file_len + ARRAY_SIZE( dot_ppd )) * sizeof(WCHAR); - WCHAR *ppd = HeapAlloc( GetProcessHeap(), 0, len ), *p; + WCHAR *ppd = malloc( len ), *p;
if (!ppd) return NULL; memcpy( ppd, dir, dir_len * sizeof(WCHAR) ); @@ -737,7 +737,7 @@ static BOOL add_printer_driver( const WCHAR *name, const WCHAR *ppd_dir )
end: RtlFreeUnicodeString( &nt_ppd ); - heap_free( ppd ); + free( ppd ); return res; }
@@ -750,7 +750,7 @@ static WCHAR *get_ppd_dir( void )
len = GetTempPathW( ARRAY_SIZE( tmp_path ), tmp_path ); if (!len) return NULL; - dir = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) + sizeof(wine_ppds) ) ; + dir = malloc( len * sizeof(WCHAR) + sizeof(wine_ppds) ) ; if (!dir) return NULL;
memcpy( dir, tmp_path, len * sizeof(WCHAR) ); @@ -758,7 +758,7 @@ static WCHAR *get_ppd_dir( void ) res = CreateDirectoryW( dir, NULL ); if (!res && GetLastError() != ERROR_ALREADY_EXISTS) { - HeapFree( GetProcessHeap(), 0, dir ); + free( dir ); dir = NULL; } TRACE( "ppd temporary dir: %s\n", debugstr_w(dir) ); @@ -787,8 +787,8 @@ static BOOL init_unix_printers( void ) do { size *= 2; - heap_free( enum_params.printers ); - enum_params.printers = heap_alloc( size ); + free( enum_params.printers ); + enum_params.printers = malloc( size ); status = UNIX_CALL( enum_printers, &enum_params ); } while (status == STATUS_BUFFER_OVERFLOW); if (status) goto end; @@ -814,7 +814,7 @@ static BOOL init_unix_printers( void ) if (!ppd_dir && !(ppd_dir = get_ppd_dir())) break; if (!add_printer_driver( printer->name, ppd_dir )) continue;
- port = heap_alloc( sizeof(L"CUPS:") + wcslen( printer->name ) * sizeof(WCHAR) ); + port = malloc( sizeof(L"CUPS:") + wcslen( printer->name ) * sizeof(WCHAR) ); wcscpy( port, L"CUPS:" ); wcscat( port, printer->name );
@@ -835,7 +835,7 @@ static BOOL init_unix_printers( void ) else if (GetLastError() != ERROR_PRINTER_ALREADY_EXISTS) ERR( "printer '%s' not added by AddPrinter (error %ld)\n", debugstr_w( printer->name ), GetLastError() );
- heap_free( port ); + free( port ); } if (printer->is_default) default_printer = printer->name; } @@ -846,10 +846,10 @@ static BOOL init_unix_printers( void ) if (ppd_dir) { RemoveDirectoryW( ppd_dir ); - heap_free( ppd_dir ); + free( ppd_dir ); } end: - heap_free( enum_params.printers ); + free( enum_params.printers ); RegCloseKey( printers_key ); return TRUE; } @@ -865,12 +865,12 @@ static void set_ppd_overrides( HANDLE printer ) { status = UNIX_CALL( get_default_page_size, ¶ms ); if (status != STATUS_BUFFER_OVERFLOW) break; - if (params.name != buffer) heap_free( params.name ); - params.name = heap_alloc( name_size ); + if (params.name != buffer) free( params.name ); + params.name = malloc( name_size ); if (!params.name) break; } if (!status) SetPrinterDataExW( printer, L"PPD Overrides", L"DefaultPageSize", REG_SZ, (BYTE*)params.name, name_size ); - if (params.name != buffer) heap_free( params.name ); + if (params.name != buffer) free( params.name ); }
static BOOL update_driver( HANDLE printer ) @@ -885,7 +885,7 @@ static BOOL update_driver( HANDLE printer ) TRACE( "updating driver %s\n", debugstr_w( name ) ); ret = add_printer_driver( name, ppd_dir );
- heap_free( ppd_dir ); + free( ppd_dir );
set_ppd_overrides( printer );
@@ -918,7 +918,7 @@ static inline DWORD set_reg_devmode( HKEY key, const WCHAR *name, const DEVMODEW { ret = RegSetValueExW( key, name, 0, REG_BINARY, (LPBYTE)dmA, dmA->dmSize + dmA->dmDriverExtra ); - HeapFree( GetProcessHeap(), 0, dmA ); + free( dmA ); }
return ret; @@ -955,7 +955,7 @@ static LPWSTR get_servername_from_name(LPCWSTR name) if (!wcscmp( buffer, server )) { /* The requested Servername is our computername */ - HeapFree(GetProcessHeap(), 0, server); + free(server); return NULL; } } @@ -993,10 +993,10 @@ static LPCWSTR get_basename_from_name(LPCWSTR name) static void free_printer_entry( opened_printer_t *printer ) { /* the queue is shared, so don't free that here */ - HeapFree( GetProcessHeap(), 0, printer->printername ); - HeapFree( GetProcessHeap(), 0, printer->name ); - HeapFree( GetProcessHeap(), 0, printer->devmode ); - HeapFree( GetProcessHeap(), 0, printer ); + free( printer->printername ); + free( printer->name ); + free( printer->devmode ); + free( printer ); }
/****************************************************************** @@ -1019,7 +1019,7 @@ static HANDLE get_opened_printer_entry(LPWSTR name, LPPRINTER_DEFAULTSW pDefault servername = get_servername_from_name(name); if (servername) { FIXME("server %s not supported\n", debugstr_w(servername)); - HeapFree(GetProcessHeap(), 0, servername); + free(servername); SetLastError(ERROR_INVALID_PRINTER_NAME); return NULL; } @@ -1052,11 +1052,14 @@ static HANDLE get_opened_printer_entry(LPWSTR name, LPPRINTER_DEFAULTSW pDefault { opened_printer_t **new_array; if (printer_handles) - new_array = HeapReAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, printer_handles, - (nb_printer_handles + 16) * sizeof(*new_array) ); + { + new_array = realloc(printer_handles, (nb_printer_handles + 16) * sizeof(*new_array)); + memset(new_array + nb_printer_handles, 0, 16 * sizeof(*new_array)); + } else - new_array = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, - (nb_printer_handles + 16) * sizeof(*new_array) ); + { + new_array = calloc(nb_printer_handles + 16, sizeof(*new_array)); + }
if (!new_array) { @@ -1067,7 +1070,7 @@ static HANDLE get_opened_printer_entry(LPWSTR name, LPPRINTER_DEFAULTSW pDefault nb_printer_handles += 16; }
- if (!(printer = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*printer)))) + if (!(printer = calloc(1, sizeof(*printer)))) { handle = 0; goto end; @@ -1096,7 +1099,7 @@ static HANDLE get_opened_printer_entry(LPWSTR name, LPPRINTER_DEFAULTSW pDefault printer->queue = queue; else { - printer->queue = HeapAlloc(GetProcessHeap(), 0, sizeof(*queue)); + printer->queue = malloc(sizeof(*queue)); if (!printer->queue) { handle = 0; goto end; @@ -1111,7 +1114,7 @@ static HANDLE get_opened_printer_entry(LPWSTR name, LPPRINTER_DEFAULTSW pDefault end: LeaveCriticalSection(&printer_handles_cs); if (!handle && printer) { - if (!queue) HeapFree(GetProcessHeap(), 0, printer->queue); + if (!queue) free(printer->queue); free_printer_entry( printer ); }
@@ -1129,7 +1132,7 @@ static void old_printer_check( BOOL delete_phase ) EnumPrintersW( PRINTER_ENUM_LOCAL, NULL, 5, NULL, 0, &needed, &num ); if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) return;
- pi = HeapAlloc( GetProcessHeap(), 0, needed ); + pi = malloc( needed ); EnumPrintersW( PRINTER_ENUM_LOCAL, NULL, 5, (LPBYTE)pi, needed, &needed, &num ); for (i = 0; i < num; i++) { @@ -1164,7 +1167,7 @@ static void old_printer_check( BOOL delete_phase ) } } } - HeapFree(GetProcessHeap(), 0, pi); + free(pi); }
static HANDLE init_mutex; @@ -1354,7 +1357,7 @@ static void convert_printerinfo_W_to_A(LPBYTE out, LPBYTE pPrintersW, piA->pDevMode = (LPDEVMODEA) ptr; len = dmA->dmSize + dmA->dmDriverExtra; memcpy(ptr, dmA, len); - HeapFree(GetProcessHeap(), 0, dmA); + free(dmA);
ptr += len; outlen -= len; @@ -1480,7 +1483,7 @@ static void convert_printerinfo_W_to_A(LPBYTE out, LPBYTE pPrintersW, piA->pDevMode = (LPDEVMODEA) ptr; len = dmA->dmSize + dmA->dmDriverExtra; memcpy(ptr, dmA, len); - HeapFree(GetProcessHeap(), 0, dmA); + free(dmA);
ptr += len; outlen -= len; @@ -1692,7 +1695,7 @@ static void *printer_info_AtoW( const void *data, DWORD level )
if (level < 1 || level > 9) return NULL;
- ret = HeapAlloc( GetProcessHeap(), 0, pi_sizeof[level] ); + ret = malloc( pi_sizeof[level] ); if (!ret) return NULL;
memcpy( ret, data, pi_sizeof[level] ); /* copy everything first */ @@ -1731,7 +1734,7 @@ static void *printer_info_AtoW( const void *data, DWORD level )
default: FIXME( "Unhandled level %ld\n", level ); - HeapFree( GetProcessHeap(), 0, ret ); + free( ret ); return NULL; }
@@ -1751,18 +1754,18 @@ static void free_printer_info( void *data, DWORD level ) { PRINTER_INFO_2W *piW = (PRINTER_INFO_2W *)data;
- HeapFree( GetProcessHeap(), 0, piW->pServerName ); - HeapFree( GetProcessHeap(), 0, piW->pPrinterName ); - HeapFree( GetProcessHeap(), 0, piW->pShareName ); - HeapFree( GetProcessHeap(), 0, piW->pPortName ); - HeapFree( GetProcessHeap(), 0, piW->pDriverName ); - HeapFree( GetProcessHeap(), 0, piW->pComment ); - HeapFree( GetProcessHeap(), 0, piW->pLocation ); - HeapFree( GetProcessHeap(), 0, piW->pDevMode ); - HeapFree( GetProcessHeap(), 0, piW->pSepFile ); - HeapFree( GetProcessHeap(), 0, piW->pPrintProcessor ); - HeapFree( GetProcessHeap(), 0, piW->pDatatype ); - HeapFree( GetProcessHeap(), 0, piW->pParameters ); + free( piW->pServerName ); + free( piW->pPrinterName ); + free( piW->pShareName ); + free( piW->pPortName ); + free( piW->pDriverName ); + free( piW->pComment ); + free( piW->pLocation ); + free( piW->pDevMode ); + free( piW->pSepFile ); + free( piW->pPrintProcessor ); + free( piW->pDatatype ); + free( piW->pParameters ); break; }
@@ -1771,7 +1774,7 @@ static void free_printer_info( void *data, DWORD level ) { PRINTER_INFO_9W *piW = (PRINTER_INFO_9W *)data;
- HeapFree( GetProcessHeap(), 0, piW->pDevMode ); + free( piW->pDevMode ); break; }
@@ -1779,7 +1782,7 @@ static void free_printer_info( void *data, DWORD level ) FIXME( "Unhandled level %ld\n", level ); }
- HeapFree( GetProcessHeap(), 0, data ); + free( data ); return; }
@@ -1797,13 +1800,13 @@ INT WINAPI DeviceCapabilitiesA(const char *device, const char *portA, WORD cap,
len = MultiByteToWideChar(CP_ACP, 0, device, -1, NULL, 0); if (len) { - device_name = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + device_name = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, device, -1, device_name, len); }
len = MultiByteToWideChar(CP_ACP, 0, portA, -1, NULL, 0); if (len) { - port = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + port = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, portA, -1, port, len); }
@@ -1826,19 +1829,19 @@ INT WINAPI DeviceCapabilitiesA(const char *device, const char *portA, WORD cap, size = 64; break; } - outputW = HeapAlloc(GetProcessHeap(), 0, size * ret * sizeof(WCHAR)); + outputW = malloc(size * ret * sizeof(WCHAR)); ret = DeviceCapabilitiesW(device_name, port, cap, outputW, devmode); for (i = 0; i < ret; i++) WideCharToMultiByte(CP_ACP, 0, outputW + (i * size), -1, output + (i * size), size, NULL, NULL); - HeapFree(GetProcessHeap(), 0, outputW); + free(outputW); } else { ret = DeviceCapabilitiesW(device_name, port, cap, (WCHAR *)output, devmode); } cleanup: - HeapFree(GetProcessHeap(), 0, device_name); - HeapFree(GetProcessHeap(), 0, devmode); - HeapFree(GetProcessHeap(), 0, port); + free(device_name); + free(devmode); + free(port); return ret; }
@@ -1882,17 +1885,17 @@ LONG WINAPI DocumentPropertiesA(HWND hwnd, HANDLE printer, char *device_name, DE
len = MultiByteToWideChar(CP_ACP, 0, device_name, -1, NULL, 0); if (len) { - device = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + device = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, device_name, -1, device, len); }
if (output && (mode & (DM_COPY | DM_UPDATE))) { ret = DocumentPropertiesW(hwnd, printer, device, NULL, NULL, 0); if (ret <= 0) { - HeapFree(GetProcessHeap(), 0, device); + free(device); return -1; } - outputW = HeapAlloc(GetProcessHeap(), 0, ret); + outputW = malloc(ret); }
if (input) inputW = GdiConvertToDevmodeW(input); @@ -1902,12 +1905,12 @@ LONG WINAPI DocumentPropertiesA(HWND hwnd, HANDLE printer, char *device_name, DE if (ret >= 0 && outputW && (mode & (DM_COPY | DM_UPDATE))) { DEVMODEA *dmA = DEVMODEdupWtoA( outputW ); if (dmA) memcpy(output, dmA, dmA->dmSize + dmA->dmDriverExtra); - HeapFree(GetProcessHeap(), 0, dmA); + free(dmA); }
- HeapFree(GetProcessHeap(), 0, device); - HeapFree(GetProcessHeap(), 0, inputW); - HeapFree(GetProcessHeap(), 0, outputW); + free(device); + free(inputW); + free(outputW);
if (!mode && ret > 0) ret -= CCHDEVICENAME + CCHFORMNAME; return ret; @@ -2126,7 +2129,7 @@ BOOL WINAPI OpenPrinter2A(LPSTR name, HANDLE *printer, if (p_defaultsW) { RtlFreeUnicodeString(&datatypeU); - HeapFree(GetProcessHeap(), 0, defaultsW.pDevMode); + free(defaultsW.pDevMode); } RtlFreeUnicodeString(&nameU);
@@ -2203,34 +2206,34 @@ BOOL WINAPI AddMonitorA(LPSTR pName, DWORD Level, LPBYTE pMonitors)
if (pName) { len = MultiByteToWideChar(CP_ACP, 0, pName, -1, NULL, 0); - nameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + nameW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pName, -1, nameW, len); }
memset(&mi2w, 0, sizeof(MONITOR_INFO_2W)); if (mi2a->pName) { len = MultiByteToWideChar(CP_ACP, 0, mi2a->pName, -1, NULL, 0); - mi2w.pName = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + mi2w.pName = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, mi2a->pName, -1, mi2w.pName, len); } if (mi2a->pEnvironment) { len = MultiByteToWideChar(CP_ACP, 0, mi2a->pEnvironment, -1, NULL, 0); - mi2w.pEnvironment = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + mi2w.pEnvironment = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, mi2a->pEnvironment, -1, mi2w.pEnvironment, len); } if (mi2a->pDLLName) { len = MultiByteToWideChar(CP_ACP, 0, mi2a->pDLLName, -1, NULL, 0); - mi2w.pDLLName = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + mi2w.pDLLName = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, mi2a->pDLLName, -1, mi2w.pDLLName, len); }
res = AddMonitorW(nameW, Level, (LPBYTE) &mi2w);
- HeapFree(GetProcessHeap(), 0, mi2w.pName); - HeapFree(GetProcessHeap(), 0, mi2w.pEnvironment); - HeapFree(GetProcessHeap(), 0, mi2w.pDLLName); + free(mi2w.pName); + free(mi2w.pEnvironment); + free(mi2w.pDLLName);
- HeapFree(GetProcessHeap(), 0, nameW); + free(nameW); return (res); }
@@ -2311,26 +2314,26 @@ BOOL WINAPI DeleteMonitorA (LPSTR pName, LPSTR pEnvironment, LPSTR pMonitorName)
if (pName) { len = MultiByteToWideChar(CP_ACP, 0, pName, -1, NULL, 0); - nameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + nameW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pName, -1, nameW, len); }
if (pEnvironment) { len = MultiByteToWideChar(CP_ACP, 0, pEnvironment, -1, NULL, 0); - EnvironmentW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + EnvironmentW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pEnvironment, -1, EnvironmentW, len); } if (pMonitorName) { len = MultiByteToWideChar(CP_ACP, 0, pMonitorName, -1, NULL, 0); - MonitorNameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + MonitorNameW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pMonitorName, -1, MonitorNameW, len); }
res = DeleteMonitorW(nameW, EnvironmentW, MonitorNameW);
- HeapFree(GetProcessHeap(), 0, MonitorNameW); - HeapFree(GetProcessHeap(), 0, EnvironmentW); - HeapFree(GetProcessHeap(), 0, nameW); + free(MonitorNameW); + free(EnvironmentW); + free(nameW); return (res); }
@@ -2382,20 +2385,20 @@ BOOL WINAPI DeletePortA (LPSTR pName, HWND hWnd, LPSTR pPortName) /* convert servername to unicode */ if (pName) { len = MultiByteToWideChar(CP_ACP, 0, pName, -1, NULL, 0); - nameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + nameW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pName, -1, nameW, len); }
/* convert portname to unicode */ if (pPortName) { len = MultiByteToWideChar(CP_ACP, 0, pPortName, -1, NULL, 0); - portW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + portW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pPortName, -1, portW, len); }
res = DeletePortW(nameW, hWnd, portW); - HeapFree(GetProcessHeap(), 0, nameW); - HeapFree(GetProcessHeap(), 0, portW); + free(nameW); + free(portW); return res; }
@@ -2547,7 +2550,7 @@ BOOL WINAPI AddJobW(HANDLE hPrinter, DWORD Level, LPBYTE pData, DWORD cbBuf, LPD goto end; }
- job = HeapAlloc(GetProcessHeap(), 0, sizeof(*job)); + job = malloc(sizeof(*job)); if(!job) goto end;
@@ -2560,7 +2563,7 @@ BOOL WINAPI AddJobW(HANDLE hPrinter, DWORD Level, LPBYTE pData, DWORD cbBuf, LPD swprintf( filename, ARRAY_SIZE(filename), L"%s%05d.SPL", path, job->job_id );
len = wcslen( filename ); - job->filename = HeapAlloc(GetProcessHeap(), 0, (len + 1) * sizeof(WCHAR)); + job->filename = malloc((len + 1) * sizeof(WCHAR)); memcpy(job->filename, filename, (len + 1) * sizeof(WCHAR)); job->portname = NULL; job->document_title = strdupW( L"Local Downlevel Document" ); @@ -2607,13 +2610,13 @@ BOOL WINAPI GetPrintProcessorDirectoryA(LPSTR server, LPSTR env,
if (server) { len = MultiByteToWideChar(CP_ACP, 0, server, -1, NULL, 0); - serverW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + serverW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, server, -1, serverW, len); }
if (env) { len = MultiByteToWideChar(CP_ACP, 0, env, -1, NULL, 0); - envW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + envW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, env, -1, envW, len); }
@@ -2628,8 +2631,8 @@ BOOL WINAPI GetPrintProcessorDirectoryA(LPSTR server, LPSTR env,
TRACE(" required: 0x%lx/%ld\n", pcbNeeded ? *pcbNeeded : 0, pcbNeeded ? *pcbNeeded : 0); - HeapFree(GetProcessHeap(), 0, envW); - HeapFree(GetProcessHeap(), 0, serverW); + free(envW); + free(serverW); return ret; }
@@ -2703,7 +2706,7 @@ static void set_devices_and_printerports(PRINTER_INFO_2W *pi) TRACE("(%p) %s\n", pi, debugstr_w(pi->pPrinterName));
/* FIXME: the driver must change to "winspool" */ - devline = HeapAlloc( GetProcessHeap(), 0, sizeof(L"wineps.drv") + portlen + sizeof(L",15,45") ); + devline = malloc( sizeof(L"wineps.drv") + portlen + sizeof(L",15,45") ); if (devline) { wcscpy( devline, L"wineps.drv," ); @@ -2724,7 +2727,7 @@ static void set_devices_and_printerports(PRINTER_INFO_2W *pi) (wcslen( devline ) + 1) * sizeof(WCHAR) ); RegCloseKey( key ); } - HeapFree(GetProcessHeap(), 0, devline); + free(devline); } }
@@ -2836,12 +2839,12 @@ HANDLE WINAPI AddPrinterW(LPWSTR pName, DWORD Level, LPBYTE pPrinter) dm = pi->pDevMode; else { - dm = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, size ); + dm = calloc( 1, size ); dm->dmSize = size; if (DocumentPropertiesW(0, 0, pi->pPrinterName, dm, NULL, DM_OUT_BUFFER) < 0) { WARN("DocumentPropertiesW on printer %s failed!\n", debugstr_w(pi->pPrinterName)); - HeapFree( GetProcessHeap(), 0, dm ); + free( dm ); dm = NULL; } else @@ -2853,7 +2856,7 @@ HANDLE WINAPI AddPrinterW(LPWSTR pName, DWORD Level, LPBYTE pPrinter) }
set_reg_devmode( printer_key, L"Default DevMode", dm ); - if (!pi->pDevMode) HeapFree( GetProcessHeap(), 0, dm ); + if (!pi->pDevMode) free( dm );
RegCloseKey( printer_key ); RegCloseKey( printers_key ); @@ -2924,7 +2927,7 @@ BOOL WINAPI ClosePrinter(HANDLE hPrinter) job_t *job = LIST_ENTRY(cursor, job_t, entry); ScheduleJob(hPrinter, job->job_id); } - HeapFree(GetProcessHeap(), 0, printer->queue); + free(printer->queue); }
if (printer->backend_printer) { @@ -3142,7 +3145,7 @@ BOOL WINAPI SetJobA(HANDLE hPrinter, DWORD JobId, DWORD Level, break; case 1: { - JOB_INFO_1W *info1W = HeapAlloc(GetProcessHeap(), 0, sizeof(*info1W)); + JOB_INFO_1W *info1W = malloc(sizeof(*info1W)); JOB_INFO_1A *info1A = (JOB_INFO_1A*)pJob;
JobW = (LPBYTE)info1W; @@ -3158,7 +3161,7 @@ BOOL WINAPI SetJobA(HANDLE hPrinter, DWORD JobId, DWORD Level, } case 2: { - JOB_INFO_2W *info2W = HeapAlloc(GetProcessHeap(), 0, sizeof(*info2W)); + JOB_INFO_2W *info2W = malloc(sizeof(*info2W)); JOB_INFO_2A *info2A = (JOB_INFO_2A*)pJob;
JobW = (LPBYTE)info2W; @@ -3180,7 +3183,7 @@ BOOL WINAPI SetJobA(HANDLE hPrinter, DWORD JobId, DWORD Level, break; } case 3: - JobW = HeapAlloc(GetProcessHeap(), 0, sizeof(JOB_INFO_3)); + JobW = malloc(sizeof(JOB_INFO_3)); memcpy(JobW, pJob, sizeof(JOB_INFO_3)); break; default: @@ -3195,27 +3198,27 @@ BOOL WINAPI SetJobA(HANDLE hPrinter, DWORD JobId, DWORD Level, case 1: { JOB_INFO_1W *info1W = (JOB_INFO_1W*)JobW; - HeapFree(GetProcessHeap(), 0, info1W->pUserName); - HeapFree(GetProcessHeap(), 0, info1W->pDocument); - HeapFree(GetProcessHeap(), 0, info1W->pDatatype); - HeapFree(GetProcessHeap(), 0, info1W->pStatus); + free(info1W->pUserName); + free(info1W->pDocument); + free(info1W->pDatatype); + free(info1W->pStatus); break; } case 2: { JOB_INFO_2W *info2W = (JOB_INFO_2W*)JobW; - HeapFree(GetProcessHeap(), 0, info2W->pUserName); - HeapFree(GetProcessHeap(), 0, info2W->pDocument); - HeapFree(GetProcessHeap(), 0, info2W->pNotifyName); - HeapFree(GetProcessHeap(), 0, info2W->pDatatype); - HeapFree(GetProcessHeap(), 0, info2W->pPrintProcessor); - HeapFree(GetProcessHeap(), 0, info2W->pParameters); - HeapFree(GetProcessHeap(), 0, info2W->pDevMode); - HeapFree(GetProcessHeap(), 0, info2W->pStatus); + free(info2W->pUserName); + free(info2W->pDocument); + free(info2W->pNotifyName); + free(info2W->pDatatype); + free(info2W->pPrintProcessor); + free(info2W->pParameters); + free(info2W->pDevMode); + free(info2W->pStatus); break; } } - HeapFree(GetProcessHeap(), 0, JobW); + free(JobW);
return ret; } @@ -3244,16 +3247,16 @@ BOOL WINAPI SetJobW(HANDLE hPrinter, DWORD JobId, DWORD Level, case 1: { JOB_INFO_1W *info1 = (JOB_INFO_1W*)pJob; - HeapFree(GetProcessHeap(), 0, job->document_title); + free(job->document_title); job->document_title = strdupW(info1->pDocument); break; } case 2: { JOB_INFO_2W *info2 = (JOB_INFO_2W*)pJob; - HeapFree(GetProcessHeap(), 0, job->document_title); + free(job->document_title); job->document_title = strdupW(info2->pDocument); - HeapFree(GetProcessHeap(), 0, job->devmode); + free(job->devmode); job->devmode = dup_devmode( info2->pDevMode ); break; } @@ -3295,7 +3298,7 @@ BOOL WINAPI EndDocPrinter(HANDLE hPrinter)
CloseHandle(printer->doc->hf); ScheduleJob(hPrinter, printer->doc->job_id); - HeapFree(GetProcessHeap(), 0, printer->doc); + free(printer->doc); printer->doc = NULL; ret = TRUE; end: @@ -3345,9 +3348,9 @@ DWORD WINAPI StartDocPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo)
ret = StartDocPrinterW(hPrinter, Level, (LPBYTE)&doc2W);
- HeapFree(GetProcessHeap(), 0, doc2W.pDatatype); - HeapFree(GetProcessHeap(), 0, doc2W.pOutputFile); - HeapFree(GetProcessHeap(), 0, doc2W.pDocName); + free(doc2W.pDatatype); + free(doc2W.pOutputFile); + free(doc2W.pDocName);
return ret; } @@ -3414,7 +3417,7 @@ DWORD WINAPI StartDocPrinterW(HANDLE hPrinter, DWORD Level, LPBYTE pDocInfo) job_info.pDocument = doc->pDocName; SetJobW(hPrinter, addjob->JobId, 1, (LPBYTE)&job_info, 0);
- printer->doc = HeapAlloc(GetProcessHeap(), 0, sizeof(*printer->doc)); + printer->doc = malloc(sizeof(*printer->doc)); printer->doc->hf = hf; ret = printer->doc->job_id = addjob->JobId; job = get_job(hPrinter, ret); @@ -3555,7 +3558,7 @@ static BOOL get_filename_from_reg(HKEY hkey, LPCWSTR driverdir, DWORD dirlen, LP ret = RegQueryValueExW(hkey, ValueName, NULL, &type, (LPBYTE) buffer, &size); if (ret == ERROR_MORE_DATA) { TRACE("need dynamic buffer: %lu\n", size); - buffer = HeapAlloc(GetProcessHeap(), 0, size); + buffer = malloc(size); if (!buffer) { /* No Memory is bad */ return FALSE; @@ -3565,7 +3568,7 @@ static BOOL get_filename_from_reg(HKEY hkey, LPCWSTR driverdir, DWORD dirlen, LP }
if ((ret != ERROR_SUCCESS) || (!buffer[0])) { - if (buffer != filename) HeapFree(GetProcessHeap(), 0, buffer); + if (buffer != filename) free(buffer); return FALSE; }
@@ -3601,7 +3604,7 @@ static BOOL get_filename_from_reg(HKEY hkey, LPCWSTR driverdir, DWORD dirlen, LP if ((type != REG_MULTI_SZ) || (!ptr[0])) ptr = NULL; }
- if (buffer != filename) HeapFree(GetProcessHeap(), 0, buffer); + if (buffer != filename) free(buffer);
/* write the multisz-termination */ if (type == REG_MULTI_SZ) { @@ -3690,7 +3693,7 @@ static BOOL WINSPOOL_GetDevModeFromReg(HKEY hkey, LPCWSTR ValueName, if (ptr && (buflen >= sz)) { DEVMODEW *dmW = GdiConvertToDevmodeW((DEVMODEA*)ptr); memcpy(ptr, dmW, sz); - HeapFree(GetProcessHeap(),0,dmW); + free(dmW); } *needed = sz; return TRUE; @@ -4238,12 +4241,12 @@ BOOL WINAPI GetPrinterA(HANDLE hPrinter, DWORD Level, LPBYTE pPrinter, LPBYTE buf = NULL;
if (cbBuf) - buf = HeapAlloc(GetProcessHeap(), 0, cbBuf); + buf = malloc(cbBuf);
ret = GetPrinterW(hPrinter, Level, buf, cbBuf, pcbNeeded); if (ret) convert_printerinfo_W_to_A(pPrinter, buf, Level, cbBuf, 1); - HeapFree(GetProcessHeap(), 0, buf); + free(buf);
return ret; } @@ -4486,7 +4489,7 @@ BOOL WINAPI EnumPrintersA(DWORD flags, LPSTR pName, DWORD level, LPBYTE pPrinter
/* Request a buffer with a size, that is big enough for EnumPrintersW. MS Office need this */ - pPrintersW = (pPrinters && cbBuf) ? HeapAlloc(GetProcessHeap(), 0, cbBuf) : NULL; + pPrintersW = (pPrinters && cbBuf) ? malloc(cbBuf) : NULL;
ret = EnumPrintersW(flags, pNameW, level, pPrintersW, cbBuf, pcbNeeded, pcReturned);
@@ -4494,7 +4497,7 @@ BOOL WINAPI EnumPrintersA(DWORD flags, LPSTR pName, DWORD level, LPBYTE pPrinter if (ret) { convert_printerinfo_W_to_A(pPrinters, pPrintersW, level, *pcbNeeded, *pcReturned); } - HeapFree(GetProcessHeap(), 0, pPrintersW); + free(pPrintersW); return ret; }
@@ -4849,7 +4852,7 @@ BOOL WINAPI GetPrinterDriverA(HANDLE hPrinter, LPSTR pEnvironment, if (cbBuf) { ZeroMemory(pDriverInfo, cbBuf); - buf = HeapAlloc(GetProcessHeap(), 0, cbBuf); + buf = malloc(cbBuf); }
pwstrEnvW = asciitounicode(&pEnvW, pEnvironment); @@ -4858,7 +4861,7 @@ BOOL WINAPI GetPrinterDriverA(HANDLE hPrinter, LPSTR pEnvironment, if (ret) convert_driverinfo_W_to_A(pDriverInfo, buf, Level, cbBuf, 1);
- HeapFree(GetProcessHeap(), 0, buf); + free(buf);
RtlFreeUnicodeString(&pEnvW); return ret; @@ -4944,7 +4947,7 @@ BOOL WINAPI GetPrinterDriverDirectoryA(LPSTR pName, LPSTR pEnvironment, TRACE("(%s, %s, %ld, %p, %ld, %p)\n", debugstr_a(pName), debugstr_a(pEnvironment), Level, pDriverDirectory, cbBuf, pcbNeeded);
- if (len) driverDirectoryW = HeapAlloc( GetProcessHeap(), 0, len ); + if (len) driverDirectoryW = malloc( len );
if(pName) RtlCreateUnicodeStringFromAsciiz(&nameW, pName); else nameW.Buffer = NULL; @@ -4965,7 +4968,7 @@ BOOL WINAPI GetPrinterDriverDirectoryA(LPSTR pName, LPSTR pEnvironment,
TRACE("required: 0x%lx/%ld\n", pcbNeeded ? *pcbNeeded : 0, pcbNeeded ? *pcbNeeded : 0);
- HeapFree( GetProcessHeap(), 0, driverDirectoryW ); + free( driverDirectoryW ); RtlFreeUnicodeString(&environmentW); RtlFreeUnicodeString(&nameW);
@@ -5324,7 +5327,7 @@ BOOL WINAPI EnumPrinterDriversA(LPSTR pName, LPSTR pEnvironment, DWORD Level, LPBYTE buf = NULL;
if (cbBuf) - buf = HeapAlloc(GetProcessHeap(), 0, cbBuf); + buf = malloc(cbBuf);
pwstrNameW = asciitounicode(&pNameW, pName); pwstrEnvironmentW = asciitounicode(&pEnvironmentW, pEnvironment); @@ -5334,7 +5337,7 @@ BOOL WINAPI EnumPrinterDriversA(LPSTR pName, LPSTR pEnvironment, DWORD Level, if (ret) convert_driverinfo_W_to_A(pDriverInfo, buf, Level, cbBuf, *pcReturned);
- HeapFree(GetProcessHeap(), 0, buf); + free(buf);
RtlFreeUnicodeString(&pNameW); RtlFreeUnicodeString(&pEnvironmentW); @@ -5364,19 +5367,18 @@ BOOL WINAPI EnumPortsA( LPSTR pName, DWORD Level, LPBYTE pPorts, DWORD cbBuf, /* convert servername to unicode */ if (pName) { len = MultiByteToWideChar(CP_ACP, 0, pName, -1, NULL, 0); - nameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + nameW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pName, -1, nameW, len); } /* alloc (userbuffersize*sizeof(WCHAR) and try to enum the Ports */ needed = cbBuf * sizeof(WCHAR); - if (needed) bufferW = HeapAlloc(GetProcessHeap(), 0, needed); + if (needed) bufferW = malloc(needed); res = EnumPortsW(nameW, Level, bufferW, needed, pcbNeeded, pcReturned);
if(!res && (GetLastError() == ERROR_INSUFFICIENT_BUFFER)) { if (pcbNeeded) needed = *pcbNeeded; /* HeapReAlloc return NULL, when bufferW was NULL */ - bufferW = (bufferW) ? HeapReAlloc(GetProcessHeap(), 0, bufferW, needed) : - HeapAlloc(GetProcessHeap(), 0, needed); + bufferW = (bufferW) ? realloc(bufferW, needed) : malloc(needed);
/* Try again with the large Buffer */ res = EnumPortsW(nameW, Level, bufferW, needed, pcbNeeded, pcReturned); @@ -5469,8 +5471,8 @@ cleanup: if (pcbNeeded) *pcbNeeded = needed; if (pcReturned) *pcReturned = (res) ? numentries : 0;
- HeapFree(GetProcessHeap(), 0, nameW); - HeapFree(GetProcessHeap(), 0, bufferW); + free(nameW); + free(bufferW);
TRACE("returning %d with %ld (%ld byte for %ld of %ld entries)\n", (res), GetLastError(), needed, (res)? numentries : 0, numentries); @@ -5544,7 +5546,7 @@ BOOL WINAPI GetDefaultPrinterW(LPWSTR name, LPDWORD namesize) * (20 for ,driver,port) */ insize = *namesize; len = max(100, (insize + 20)); - buffer = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR)); + buffer = malloc( len * sizeof(WCHAR));
if (!GetProfileStringW( L"windows", L"device", L"", buffer, len )) { @@ -5572,7 +5574,7 @@ BOOL WINAPI GetDefaultPrinterW(LPWSTR name, LPDWORD namesize) wcscpy( name, buffer );
end: - HeapFree( GetProcessHeap(), 0, buffer); + free( buffer); return retval; }
@@ -5594,7 +5596,7 @@ BOOL WINAPI GetDefaultPrinterA(LPSTR name, LPDWORD namesize)
if(name && *namesize) { insize = *namesize; - bufferW = HeapAlloc( GetProcessHeap(), 0, insize * sizeof(WCHAR)); + bufferW = malloc( insize * sizeof(WCHAR)); }
if(!GetDefaultPrinterW( bufferW, namesize)) { @@ -5612,7 +5614,7 @@ BOOL WINAPI GetDefaultPrinterA(LPSTR name, LPDWORD namesize) TRACE("0x%08lx/0x%08lx:%s\n", *namesize, insize, debugstr_w(bufferW));
end: - HeapFree( GetProcessHeap(), 0, bufferW); + free( bufferW); return retval; }
@@ -5679,10 +5681,10 @@ BOOL WINAPI SetDefaultPrinterW(LPCWSTR pszPrinter) /* "pszPrinter" is never empty or NULL here. */ namelen = wcslen( pszPrinter ); size = namelen + (MAX_PATH * 2) + 3; /* printer,driver,port and a 0 */ - buffer = HeapAlloc(GetProcessHeap(), 0, size * sizeof(WCHAR)); + buffer = malloc(size * sizeof(WCHAR)); if (!buffer || create_printers_reg_key( user_printers_key, &hreg )) { - HeapFree(GetProcessHeap(), 0, buffer); + free(buffer); SetLastError(ERROR_FILE_NOT_FOUND); return FALSE; } @@ -5713,7 +5715,7 @@ BOOL WINAPI SetDefaultPrinterW(LPCWSTR pszPrinter) }
RegCloseKey(hreg); - HeapFree(GetProcessHeap(), 0, buffer); + free(buffer); return (lres == ERROR_SUCCESS); }
@@ -5731,11 +5733,11 @@ BOOL WINAPI SetDefaultPrinterA(LPCSTR pszPrinter) TRACE("(%s)\n", debugstr_a(pszPrinter)); if(pszPrinter) { INT len = MultiByteToWideChar(CP_ACP, 0, pszPrinter, -1, NULL, 0); - bufferW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + bufferW = malloc(len * sizeof(WCHAR)); if (bufferW) MultiByteToWideChar(CP_ACP, 0, pszPrinter, -1, bufferW, len); } res = SetDefaultPrinterW(bufferW); - HeapFree(GetProcessHeap(), 0, bufferW); + free(bufferW); return res; }
@@ -5952,7 +5954,6 @@ DWORD WINAPI EnumPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName, cbValueNameLen, cbMaxValueLen, cbValueLen, cbBufSize, dwType; LPWSTR lpValueName; - HANDLE hHeap; PBYTE lpValue; PPRINTER_ENUM_VALUESW ppev;
@@ -6015,32 +6016,21 @@ DWORD WINAPI EnumPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName,
++cbMaxValueNameLen; /* allow for trailing '\0' */
- hHeap = GetProcessHeap (); - if (hHeap == NULL) - { - ERR ("GetProcessHeap failed\n"); - r = RegCloseKey (hkSubKey); - if (r != ERROR_SUCCESS) - WARN ("RegCloseKey returned %li\n", r); - return ERROR_OUTOFMEMORY; - } - - lpValueName = HeapAlloc (hHeap, 0, cbMaxValueNameLen * sizeof (WCHAR)); + lpValueName = malloc (cbMaxValueNameLen * sizeof(WCHAR)); if (lpValueName == NULL) { - ERR ("Failed to allocate %li WCHARs from process heap\n", cbMaxValueNameLen); + ERR ("Failed to allocate %li WCHARs\n", cbMaxValueNameLen); r = RegCloseKey (hkSubKey); if (r != ERROR_SUCCESS) WARN ("RegCloseKey returned %li\n", r); return ERROR_OUTOFMEMORY; }
- lpValue = HeapAlloc (hHeap, 0, cbMaxValueLen); + lpValue = malloc (cbMaxValueLen); if (lpValue == NULL) { - ERR ("Failed to allocate %li bytes from process heap\n", cbMaxValueLen); - if (HeapFree (hHeap, 0, lpValueName) == 0) - WARN ("HeapFree failed with code %li\n", GetLastError ()); + ERR ("Failed to allocate %li bytes\n", cbMaxValueLen); + free (lpValueName); r = RegCloseKey (hkSubKey); if (r != ERROR_SUCCESS) WARN ("RegCloseKey returned %li\n", r); @@ -6060,10 +6050,8 @@ DWORD WINAPI EnumPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName, NULL, NULL, lpValue, &cbValueLen); if (ret != ERROR_SUCCESS) { - if (HeapFree (hHeap, 0, lpValue) == 0) - WARN ("HeapFree failed with code %li\n", GetLastError ()); - if (HeapFree (hHeap, 0, lpValueName) == 0) - WARN ("HeapFree failed with code %li\n", GetLastError ()); + free (lpValue); + free (lpValueName); r = RegCloseKey (hkSubKey); if (r != ERROR_SUCCESS) WARN ("RegCloseKey returned %li\n", r); @@ -6086,10 +6074,8 @@ DWORD WINAPI EnumPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName,
if (cbEnumValues < cbBufSize) /* buffer too small */ { - if (HeapFree (hHeap, 0, lpValue) == 0) - WARN ("HeapFree failed with code %li\n", GetLastError ()); - if (HeapFree (hHeap, 0, lpValueName) == 0) - WARN ("HeapFree failed with code %li\n", GetLastError ()); + free (lpValue); + free (lpValueName); r = RegCloseKey (hkSubKey); if (r != ERROR_SUCCESS) WARN ("RegCloseKey returned %li\n", r); @@ -6109,10 +6095,8 @@ DWORD WINAPI EnumPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName, NULL, &dwType, lpValue, &cbValueLen); if (ret != ERROR_SUCCESS) { - if (HeapFree (hHeap, 0, lpValue) == 0) - WARN ("HeapFree failed with code %li\n", GetLastError ()); - if (HeapFree (hHeap, 0, lpValueName) == 0) - WARN ("HeapFree failed with code %li\n", GetLastError ()); + free (lpValue); + free (lpValueName); r = RegCloseKey (hkSubKey); if (r != ERROR_SUCCESS) WARN ("RegCloseKey returned %li\n", r); @@ -6140,27 +6124,8 @@ DWORD WINAPI EnumPrinterDataExW(HANDLE hPrinter, LPCWSTR pKeyName, debugstr_w (lpValueName), dwIndex, cbValueNameLen, cbValueLen); }
- if (HeapFree (hHeap, 0, lpValue) == 0) - { - ret = GetLastError (); - ERR ("HeapFree failed with code %li\n", ret); - if (HeapFree (hHeap, 0, lpValueName) == 0) - WARN ("HeapFree failed with code %li\n", GetLastError ()); - r = RegCloseKey (hkSubKey); - if (r != ERROR_SUCCESS) - WARN ("RegCloseKey returned %li\n", r); - return ret; - } - - if (HeapFree (hHeap, 0, lpValueName) == 0) - { - ret = GetLastError (); - ERR ("HeapFree failed with code %li\n", ret); - r = RegCloseKey (hkSubKey); - if (r != ERROR_SUCCESS) - WARN ("RegCloseKey returned %li\n", r); - return ret; - } + free (lpValue); + free (lpValueName);
ret = RegCloseKey (hkSubKey); if (ret != ERROR_SUCCESS) @@ -6187,7 +6152,6 @@ DWORD WINAPI EnumPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName, INT len; LPWSTR pKeyNameW; DWORD ret, dwIndex, dwBufSize; - HANDLE hHeap; LPSTR pBuffer;
TRACE ("%p %s\n", hPrinter, pKeyName); @@ -6203,17 +6167,10 @@ DWORD WINAPI EnumPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName, return ret; }
- hHeap = GetProcessHeap (); - if (hHeap == NULL) - { - ERR ("GetProcessHeap failed\n"); - return ERROR_OUTOFMEMORY; - } - - pKeyNameW = HeapAlloc (hHeap, 0, len * sizeof (WCHAR)); + pKeyNameW = malloc (len * sizeof(WCHAR)); if (pKeyNameW == NULL) { - ERR ("Failed to allocate %li bytes from process heap\n", + ERR ("Failed to allocate %li bytes\n", (LONG)(len * sizeof (WCHAR))); return ERROR_OUTOFMEMORY; } @@ -6222,28 +6179,19 @@ DWORD WINAPI EnumPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName, { ret = GetLastError (); ERR ("MultiByteToWideChar failed with code %li\n", ret); - if (HeapFree (hHeap, 0, pKeyNameW) == 0) - WARN ("HeapFree failed with code %li\n", GetLastError ()); + free (pKeyNameW); return ret; }
ret = EnumPrinterDataExW (hPrinter, pKeyNameW, pEnumValues, cbEnumValues, pcbEnumValues, pnEnumValues); + free (pKeyNameW); if (ret != ERROR_SUCCESS) { - if (HeapFree (hHeap, 0, pKeyNameW) == 0) - WARN ("HeapFree failed with code %li\n", GetLastError ()); TRACE ("EnumPrinterDataExW returned %li\n", ret); return ret; }
- if (HeapFree (hHeap, 0, pKeyNameW) == 0) - { - ret = GetLastError (); - ERR ("HeapFree failed with code %li\n", ret); - return ret; - } - if (*pnEnumValues == 0) /* empty key */ return ERROR_SUCCESS;
@@ -6263,10 +6211,10 @@ DWORD WINAPI EnumPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName,
TRACE ("Largest Unicode name or value is %li bytes\n", dwBufSize);
- pBuffer = HeapAlloc (hHeap, 0, dwBufSize); + pBuffer = malloc(dwBufSize); if (pBuffer == NULL) { - ERR ("Failed to allocate %li bytes from process heap\n", dwBufSize); + ERR ("Failed to allocate %li bytes\n", dwBufSize); return ERROR_OUTOFMEMORY; }
@@ -6282,8 +6230,7 @@ DWORD WINAPI EnumPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName, { ret = GetLastError (); ERR ("WideCharToMultiByte failed with code %li\n", ret); - if (HeapFree (hHeap, 0, pBuffer) == 0) - WARN ("HeapFree failed with code %li\n", GetLastError ()); + free (pBuffer); return ret; }
@@ -6301,8 +6248,7 @@ DWORD WINAPI EnumPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName, { ret = GetLastError (); ERR ("WideCharToMultiByte failed with code %li\n", ret); - if (HeapFree (hHeap, 0, pBuffer) == 0) - WARN ("HeapFree failed with code %li\n", GetLastError ()); + free (pBuffer); return ret; }
@@ -6312,13 +6258,7 @@ DWORD WINAPI EnumPrinterDataExA(HANDLE hPrinter, LPCSTR pKeyName, TRACE (" (only first string of REG_MULTI_SZ printed)\n"); }
- if (HeapFree (hHeap, 0, pBuffer) == 0) - { - ret = GetLastError (); - ERR ("HeapFree failed with code %li\n", ret); - return ret; - } - + free(pBuffer); return ERROR_SUCCESS; }
@@ -6348,18 +6288,18 @@ BOOL WINAPI AddPortA(LPSTR pName, HWND hWnd, LPSTR pMonitorName)
if (pName) { len = MultiByteToWideChar(CP_ACP, 0, pName, -1, NULL, 0); - nameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + nameW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pName, -1, nameW, len); }
if (pMonitorName) { len = MultiByteToWideChar(CP_ACP, 0, pMonitorName, -1, NULL, 0); - monitorW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + monitorW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pMonitorName, -1, monitorW, len); } res = AddPortW(nameW, hWnd, monitorW); - HeapFree(GetProcessHeap(), 0, nameW); - HeapFree(GetProcessHeap(), 0, monitorW); + free(nameW); + free(monitorW); return res; }
@@ -6424,13 +6364,13 @@ BOOL WINAPI AddPortExA(LPSTR pName, DWORD level, LPBYTE pBuffer, LPSTR pMonitorN
if (pName) { len = MultiByteToWideChar(CP_ACP, 0, pName, -1, NULL, 0); - nameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + nameW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pName, -1, nameW, len); }
if (pMonitorName) { len = MultiByteToWideChar(CP_ACP, 0, pMonitorName, -1, NULL, 0); - monitorW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + monitorW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pMonitorName, -1, monitorW, len); }
@@ -6438,20 +6378,20 @@ BOOL WINAPI AddPortExA(LPSTR pName, DWORD level, LPBYTE pBuffer, LPSTR pMonitorN
if (pi2A->pPortName) { len = MultiByteToWideChar(CP_ACP, 0, pi2A->pPortName, -1, NULL, 0); - pi2W.pPortName = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + pi2W.pPortName = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pi2A->pPortName, -1, pi2W.pPortName, len); }
if (level > 1) { if (pi2A->pMonitorName) { len = MultiByteToWideChar(CP_ACP, 0, pi2A->pMonitorName, -1, NULL, 0); - pi2W.pMonitorName = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + pi2W.pMonitorName = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pi2A->pMonitorName, -1, pi2W.pMonitorName, len); }
if (pi2A->pDescription) { len = MultiByteToWideChar(CP_ACP, 0, pi2A->pDescription, -1, NULL, 0); - pi2W.pDescription = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + pi2W.pDescription = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pi2A->pDescription, -1, pi2W.pDescription, len); } pi2W.fPortType = pi2A->fPortType; @@ -6460,11 +6400,11 @@ BOOL WINAPI AddPortExA(LPSTR pName, DWORD level, LPBYTE pBuffer, LPSTR pMonitorN
res = AddPortExW(nameW, level, (LPBYTE) &pi2W, monitorW);
- HeapFree(GetProcessHeap(), 0, nameW); - HeapFree(GetProcessHeap(), 0, monitorW); - HeapFree(GetProcessHeap(), 0, pi2W.pPortName); - HeapFree(GetProcessHeap(), 0, pi2W.pMonitorName); - HeapFree(GetProcessHeap(), 0, pi2W.pDescription); + free(nameW); + free(monitorW); + free(pi2W.pPortName); + free(pi2W.pMonitorName); + free(pi2W.pDescription); return res;
} @@ -6592,7 +6532,7 @@ BOOL WINAPI AddPrinterDriverExA(LPSTR pName, DWORD Level, LPBYTE pDriverInfo, DW /* convert servername to unicode */ if (pName) { len = MultiByteToWideChar(CP_ACP, 0, pName, -1, NULL, 0); - nameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + nameW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pName, -1, nameW, len); }
@@ -6601,63 +6541,63 @@ BOOL WINAPI AddPrinterDriverExA(LPSTR pName, DWORD Level, LPBYTE pDriverInfo, DW
if (diA->pName) { len = MultiByteToWideChar(CP_ACP, 0, diA->pName, -1, NULL, 0); - diW.pName = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + diW.pName = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, diA->pName, -1, diW.pName, len); }
if (diA->pEnvironment) { len = MultiByteToWideChar(CP_ACP, 0, diA->pEnvironment, -1, NULL, 0); - diW.pEnvironment = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + diW.pEnvironment = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, diA->pEnvironment, -1, diW.pEnvironment, len); }
if (diA->pDriverPath) { len = MultiByteToWideChar(CP_ACP, 0, diA->pDriverPath, -1, NULL, 0); - diW.pDriverPath = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + diW.pDriverPath = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, diA->pDriverPath, -1, diW.pDriverPath, len); }
if (diA->pDataFile) { len = MultiByteToWideChar(CP_ACP, 0, diA->pDataFile, -1, NULL, 0); - diW.pDataFile = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + diW.pDataFile = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, diA->pDataFile, -1, diW.pDataFile, len); }
if (diA->pConfigFile) { len = MultiByteToWideChar(CP_ACP, 0, diA->pConfigFile, -1, NULL, 0); - diW.pConfigFile = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + diW.pConfigFile = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, diA->pConfigFile, -1, diW.pConfigFile, len); }
if ((Level > 2) && diA->pHelpFile) { len = MultiByteToWideChar(CP_ACP, 0, diA->pHelpFile, -1, NULL, 0); - diW.pHelpFile = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + diW.pHelpFile = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, diA->pHelpFile, -1, diW.pHelpFile, len); }
if ((Level > 2) && diA->pDependentFiles) { lenA = multi_sz_lenA(diA->pDependentFiles); len = MultiByteToWideChar(CP_ACP, 0, diA->pDependentFiles, lenA, NULL, 0); - diW.pDependentFiles = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + diW.pDependentFiles = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, diA->pDependentFiles, lenA, diW.pDependentFiles, len); }
if ((Level > 2) && diA->pMonitorName) { len = MultiByteToWideChar(CP_ACP, 0, diA->pMonitorName, -1, NULL, 0); - diW.pMonitorName = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + diW.pMonitorName = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, diA->pMonitorName, -1, diW.pMonitorName, len); }
if ((Level > 2) && diA->pDefaultDataType) { len = MultiByteToWideChar(CP_ACP, 0, diA->pDefaultDataType, -1, NULL, 0); - diW.pDefaultDataType = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + diW.pDefaultDataType = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, diA->pDefaultDataType, -1, diW.pDefaultDataType, len); }
if ((Level > 3) && diA->pszzPreviousNames) { lenA = multi_sz_lenA(diA->pszzPreviousNames); len = MultiByteToWideChar(CP_ACP, 0, diA->pszzPreviousNames, lenA, NULL, 0); - diW.pszzPreviousNames = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + diW.pszzPreviousNames = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, diA->pszzPreviousNames, lenA, diW.pszzPreviousNames, len); }
@@ -6668,57 +6608,57 @@ BOOL WINAPI AddPrinterDriverExA(LPSTR pName, DWORD Level, LPBYTE pDriverInfo, DW
if ((Level > 5) && diA->pszMfgName) { len = MultiByteToWideChar(CP_ACP, 0, diA->pszMfgName, -1, NULL, 0); - diW.pszMfgName = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + diW.pszMfgName = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, diA->pszMfgName, -1, diW.pszMfgName, len); }
if ((Level > 5) && diA->pszOEMUrl) { len = MultiByteToWideChar(CP_ACP, 0, diA->pszOEMUrl, -1, NULL, 0); - diW.pszOEMUrl = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + diW.pszOEMUrl = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, diA->pszOEMUrl, -1, diW.pszOEMUrl, len); }
if ((Level > 5) && diA->pszHardwareID) { len = MultiByteToWideChar(CP_ACP, 0, diA->pszHardwareID, -1, NULL, 0); - diW.pszHardwareID = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + diW.pszHardwareID = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, diA->pszHardwareID, -1, diW.pszHardwareID, len); }
if ((Level > 5) && diA->pszProvider) { len = MultiByteToWideChar(CP_ACP, 0, diA->pszProvider, -1, NULL, 0); - diW.pszProvider = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + diW.pszProvider = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, diA->pszProvider, -1, diW.pszProvider, len); }
if ((Level > 7) && diA->pszPrintProcessor) { len = MultiByteToWideChar(CP_ACP, 0, diA->pszPrintProcessor, -1, NULL, 0); - diW.pszPrintProcessor = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + diW.pszPrintProcessor = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, diA->pszPrintProcessor, -1, diW.pszPrintProcessor, len); }
if ((Level > 7) && diA->pszVendorSetup) { len = MultiByteToWideChar(CP_ACP, 0, diA->pszVendorSetup, -1, NULL, 0); - diW.pszVendorSetup = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + diW.pszVendorSetup = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, diA->pszVendorSetup, -1, diW.pszVendorSetup, len); }
if ((Level > 7) && diA->pszzColorProfiles) { lenA = multi_sz_lenA(diA->pszzColorProfiles); len = MultiByteToWideChar(CP_ACP, 0, diA->pszzColorProfiles, lenA, NULL, 0); - diW.pszzColorProfiles = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + diW.pszzColorProfiles = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, diA->pszzColorProfiles, lenA, diW.pszzColorProfiles, len); }
if ((Level > 7) && diA->pszInfPath) { len = MultiByteToWideChar(CP_ACP, 0, diA->pszInfPath, -1, NULL, 0); - diW.pszInfPath = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + diW.pszInfPath = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, diA->pszInfPath, -1, diW.pszInfPath, len); }
if ((Level > 7) && diA->pszzCoreDriverDependencies) { lenA = multi_sz_lenA(diA->pszzCoreDriverDependencies); len = MultiByteToWideChar(CP_ACP, 0, diA->pszzCoreDriverDependencies, lenA, NULL, 0); - diW.pszzCoreDriverDependencies = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + diW.pszzCoreDriverDependencies = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, diA->pszzCoreDriverDependencies, lenA, diW.pszzCoreDriverDependencies, len); }
@@ -6730,26 +6670,26 @@ BOOL WINAPI AddPrinterDriverExA(LPSTR pName, DWORD Level, LPBYTE pDriverInfo, DW
res = AddPrinterDriverExW(nameW, Level, (LPBYTE) &diW, dwFileCopyFlags); TRACE("got %u with %lu\n", res, GetLastError()); - HeapFree(GetProcessHeap(), 0, nameW); - HeapFree(GetProcessHeap(), 0, diW.pName); - HeapFree(GetProcessHeap(), 0, diW.pEnvironment); - HeapFree(GetProcessHeap(), 0, diW.pDriverPath); - HeapFree(GetProcessHeap(), 0, diW.pDataFile); - HeapFree(GetProcessHeap(), 0, diW.pConfigFile); - HeapFree(GetProcessHeap(), 0, diW.pHelpFile); - HeapFree(GetProcessHeap(), 0, diW.pDependentFiles); - HeapFree(GetProcessHeap(), 0, diW.pMonitorName); - HeapFree(GetProcessHeap(), 0, diW.pDefaultDataType); - HeapFree(GetProcessHeap(), 0, diW.pszzPreviousNames); - HeapFree(GetProcessHeap(), 0, diW.pszMfgName); - HeapFree(GetProcessHeap(), 0, diW.pszOEMUrl); - HeapFree(GetProcessHeap(), 0, diW.pszHardwareID); - HeapFree(GetProcessHeap(), 0, diW.pszProvider); - HeapFree(GetProcessHeap(), 0, diW.pszPrintProcessor); - HeapFree(GetProcessHeap(), 0, diW.pszVendorSetup); - HeapFree(GetProcessHeap(), 0, diW.pszzColorProfiles); - HeapFree(GetProcessHeap(), 0, diW.pszInfPath); - HeapFree(GetProcessHeap(), 0, diW.pszzCoreDriverDependencies); + free(nameW); + free(diW.pName); + free(diW.pEnvironment); + free(diW.pDriverPath); + free(diW.pDataFile); + free(diW.pConfigFile); + free(diW.pHelpFile); + free(diW.pDependentFiles); + free(diW.pMonitorName); + free(diW.pDefaultDataType); + free(diW.pszzPreviousNames); + free(diW.pszMfgName); + free(diW.pszOEMUrl); + free(diW.pszHardwareID); + free(diW.pszProvider); + free(diW.pszPrintProcessor); + free(diW.pszVendorSetup); + free(diW.pszzColorProfiles); + free(diW.pszInfPath); + free(diW.pszzCoreDriverDependencies);
TRACE("=> %u with %lu\n", res, GetLastError()); return res; @@ -6773,20 +6713,20 @@ BOOL WINAPI ConfigurePortA(LPSTR pName, HWND hWnd, LPSTR pPortName) /* convert servername to unicode */ if (pName) { len = MultiByteToWideChar(CP_ACP, 0, pName, -1, NULL, 0); - nameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + nameW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pName, -1, nameW, len); }
/* convert portname to unicode */ if (pPortName) { len = MultiByteToWideChar(CP_ACP, 0, pPortName, -1, NULL, 0); - portW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + portW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pPortName, -1, portW, len); }
res = ConfigurePortW(nameW, hWnd, portW); - HeapFree(GetProcessHeap(), 0, nameW); - HeapFree(GetProcessHeap(), 0, portW); + free(nameW); + free(portW); return res; }
@@ -7044,19 +6984,18 @@ BOOL WINAPI EnumMonitorsA(LPSTR pName, DWORD Level, LPBYTE pMonitors, /* convert servername to unicode */ if (pName) { len = MultiByteToWideChar(CP_ACP, 0, pName, -1, NULL, 0); - nameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + nameW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pName, -1, nameW, len); } /* alloc (userbuffersize*sizeof(WCHAR) and try to enum the monitors */ needed = cbBuf * sizeof(WCHAR); - if (needed) bufferW = HeapAlloc(GetProcessHeap(), 0, needed); + if (needed) bufferW = malloc(needed); res = EnumMonitorsW(nameW, Level, bufferW, needed, pcbNeeded, pcReturned);
if(!res && (GetLastError() == ERROR_INSUFFICIENT_BUFFER)) { if (pcbNeeded) needed = *pcbNeeded; /* HeapReAlloc return NULL, when bufferW was NULL */ - bufferW = (bufferW) ? HeapReAlloc(GetProcessHeap(), 0, bufferW, needed) : - HeapAlloc(GetProcessHeap(), 0, needed); + bufferW = (bufferW) ? realloc(bufferW, needed) : malloc(needed);
/* Try again with the large Buffer */ res = EnumMonitorsW(nameW, Level, bufferW, needed, pcbNeeded, pcReturned); @@ -7143,8 +7082,8 @@ emA_cleanup: if (pcbNeeded) *pcbNeeded = needed; if (pcReturned) *pcReturned = (res) ? numentries : 0;
- HeapFree(GetProcessHeap(), 0, nameW); - HeapFree(GetProcessHeap(), 0, bufferW); + free(nameW); + free(bufferW);
TRACE("returning %d with %ld (%ld byte for %ld entries)\n", (res), GetLastError(), needed, numentries); @@ -7374,25 +7313,24 @@ BOOL WINAPI EnumPrintProcessorsA(LPSTR pName, LPSTR pEnvironment, DWORD Level, /* convert names to unicode */ if (pName) { len = MultiByteToWideChar(CP_ACP, 0, pName, -1, NULL, 0); - nameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + nameW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pName, -1, nameW, len); } if (pEnvironment) { len = MultiByteToWideChar(CP_ACP, 0, pEnvironment, -1, NULL, 0); - envW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + envW = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pEnvironment, -1, envW, len); }
/* alloc (userbuffersize*sizeof(WCHAR) and try to enum the monitors */ needed = cbBuf * sizeof(WCHAR); - if (needed) bufferW = HeapAlloc(GetProcessHeap(), 0, needed); + if (needed) bufferW = malloc(needed); res = EnumPrintProcessorsW(nameW, envW, Level, bufferW, needed, pcbNeeded, pcReturned);
if(!res && (GetLastError() == ERROR_INSUFFICIENT_BUFFER)) { if (pcbNeeded) needed = *pcbNeeded; /* HeapReAlloc return NULL, when bufferW was NULL */ - bufferW = (bufferW) ? HeapReAlloc(GetProcessHeap(), 0, bufferW, needed) : - HeapAlloc(GetProcessHeap(), 0, needed); + bufferW = (bufferW) ? realloc(bufferW, needed) : malloc(needed);
/* Try again with the large Buffer */ res = EnumPrintProcessorsW(nameW, envW, Level, bufferW, needed, pcbNeeded, pcReturned); @@ -7455,9 +7393,9 @@ epp_cleanup: if (pcbNeeded) *pcbNeeded = needed; if (pcReturned) *pcReturned = (res) ? numentries : 0;
- HeapFree(GetProcessHeap(), 0, nameW); - HeapFree(GetProcessHeap(), 0, envW); - HeapFree(GetProcessHeap(), 0, bufferW); + free(nameW); + free(envW); + free(bufferW);
TRACE("returning %d with %ld (%ld byte for %ld entries)\n", (res), GetLastError(), needed, numentries); @@ -7718,7 +7656,7 @@ static BOOL get_job_info_2(job_t *job, JOB_INFO_2W *ji2, LPBYTE buf, DWORD cbBuf ptr += shift; memcpy(ptr, devmode, size-shift); ji2->pDevMode = (LPDEVMODEW)ptr; - if (!unicode) HeapFree(GetProcessHeap(), 0, dmA); + if (!unicode) free(dmA); ptr += size-shift; left -= size; } @@ -7842,7 +7780,7 @@ static INT_PTR CALLBACK file_dlg_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM DWORD len = SendDlgItemMessageW(hwnd, EDITBOX, WM_GETTEXTLENGTH, 0, 0); LPWSTR *output;
- filename = HeapAlloc(GetProcessHeap(), 0, (len + 1) * sizeof(WCHAR)); + filename = malloc((len + 1) * sizeof(WCHAR)); GetDlgItemTextW(hwnd, EDITBOX, filename, len + 1);
if(GetFileAttributesW(filename) != INVALID_FILE_ATTRIBUTES) @@ -7855,7 +7793,7 @@ static INT_PTR CALLBACK file_dlg_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM mb_ret = MessageBoxW(hwnd, message, caption, MB_OKCANCEL | MB_ICONEXCLAMATION); if(mb_ret == IDCANCEL) { - HeapFree(GetProcessHeap(), 0, filename); + free(filename); return TRUE; } } @@ -7867,7 +7805,7 @@ static INT_PTR CALLBACK file_dlg_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM LoadStringW(WINSPOOL_hInstance, IDS_CAPTION, caption, ARRAY_SIZE(caption)); LoadStringW(WINSPOOL_hInstance, IDS_CANNOT_OPEN, message, ARRAY_SIZE(message)); MessageBoxW(hwnd, message, caption, MB_OK | MB_ICONEXCLAMATION); - HeapFree(GetProcessHeap(), 0, filename); + free(filename); return TRUE; } CloseHandle(hf); @@ -7909,7 +7847,7 @@ static BOOL schedule_file(LPCWSTR filename) BOOL r; TRACE("copy to %s\n", debugstr_w(output)); r = CopyFileW(filename, output, FALSE); - HeapFree(GetProcessHeap(), 0, output); + free(output); return r; } return FALSE; @@ -7951,7 +7889,7 @@ BOOL WINAPI ScheduleJob( HANDLE hPrinter, DWORD dwJobID ) if (!portname) { GetPrinterW(hPrinter, 5, NULL, 0, &needed); - pi5 = HeapAlloc(GetProcessHeap(), 0, needed); + pi5 = malloc(needed); GetPrinterW(hPrinter, 5, (LPBYTE)pi5, needed, &needed); portname = pi5->pPortName; } @@ -7991,17 +7929,17 @@ BOOL WINAPI ScheduleJob( HANDLE hPrinter, DWORD dwJobID ) else ret = FALSE;
if (!ret) FIXME( "can't schedule to port %s\n", debugstr_w( portname ) ); - HeapFree(GetProcessHeap(), 0, pi5); + free(pi5); CloseHandle(hf); DeleteFileW(job->filename); } list_remove(cursor); - HeapFree(GetProcessHeap(), 0, job->document_title); - HeapFree(GetProcessHeap(), 0, job->printer_name); - HeapFree(GetProcessHeap(), 0, job->portname); - HeapFree(GetProcessHeap(), 0, job->filename); - HeapFree(GetProcessHeap(), 0, job->devmode); - HeapFree(GetProcessHeap(), 0, job); + free(job->document_title); + free(job->printer_name); + free(job->portname); + free(job->filename); + free(job->devmode); + free(job); break; } end: @@ -8043,15 +7981,15 @@ LPSTR WINAPI StartDocDlgA( HANDLE hPrinter, DOCINFOA *doc ) if(retW) { DWORD len = WideCharToMultiByte(CP_ACP, 0, retW, -1, NULL, 0, NULL, NULL); - ret = HeapAlloc(GetProcessHeap(), 0, len); + ret = heap_alloc(len); WideCharToMultiByte(CP_ACP, 0, retW, -1, ret, len, NULL, NULL); - HeapFree(GetProcessHeap(), 0, retW); + heap_free(retW); }
failed: - HeapFree(GetProcessHeap(), 0, datatypeW); - HeapFree(GetProcessHeap(), 0, outputW); - HeapFree(GetProcessHeap(), 0, docnameW); + free(datatypeW); + free(outputW); + free(docnameW);
return ret; } @@ -8076,14 +8014,14 @@ LPWSTR WINAPI StartDocDlgW( HANDLE hPrinter, DOCINFOW *doc ) GetPrinterW(hPrinter, 5, NULL, 0, &len); if(GetLastError() != ERROR_INSUFFICIENT_BUFFER) return NULL; - pi5 = HeapAlloc(GetProcessHeap(), 0, len); + pi5 = malloc(len); GetPrinterW(hPrinter, 5, (LPBYTE)pi5, len, &len); if(!pi5->pPortName || wcscmp( pi5->pPortName, L"FILE:" )) { - HeapFree(GetProcessHeap(), 0, pi5); + free(pi5); return NULL; } - HeapFree(GetProcessHeap(), 0, pi5); + free(pi5); }
if(doc->lpszOutput == NULL || !wcscmp( doc->lpszOutput, L"FILE:" )) @@ -8094,12 +8032,12 @@ LPWSTR WINAPI StartDocDlgW( HANDLE hPrinter, DOCINFOW *doc ) { if(!(len = GetFullPathNameW(name, 0, NULL, NULL))) { - HeapFree(GetProcessHeap(), 0, name); + free(name); return NULL; } - ret = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + ret = heap_alloc(len * sizeof(WCHAR)); GetFullPathNameW(name, len, ret, NULL); - HeapFree(GetProcessHeap(), 0, name); + free(name); } return ret; } @@ -8107,13 +8045,13 @@ LPWSTR WINAPI StartDocDlgW( HANDLE hPrinter, DOCINFOW *doc ) if(!(len = GetFullPathNameW(doc->lpszOutput, 0, NULL, NULL))) return NULL;
- ret = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + ret = heap_alloc(len * sizeof(WCHAR)); GetFullPathNameW(doc->lpszOutput, len, ret, NULL);
attr = GetFileAttributesW(ret); if(attr != INVALID_FILE_ATTRIBUTES && (attr & FILE_ATTRIBUTE_DIRECTORY)) { - HeapFree(GetProcessHeap(), 0, ret); + heap_free(ret); ret = NULL; } return ret;
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=126146
Your paranoid android.
=== debian11 (32 bit report) ===
crypt32: cert.c:4191: Test failed: success cert.c:4192: Test failed: got 00000000 cert.c:4193: Test failed: got 00000000
This merge request was approved by Huw Davies.