spoolss: Use standard C functions for memory allocation in router.c.

This commit is contained in:
Alex Henrie 2022-11-17 22:04:44 -07:00 committed by Alexandre Julliard
parent 6a5dcc5273
commit 01dae0013c

View file

@ -19,6 +19,7 @@
*/ */
#include <stdarg.h> #include <stdarg.h>
#include <stdlib.h>
#include "windef.h" #include "windef.h"
#include "winbase.h" #include "winbase.h"
@ -31,7 +32,6 @@
#include "spoolss.h" #include "spoolss.h"
#include "wine/debug.h" #include "wine/debug.h"
#include "wine/heap.h"
WINE_DEFAULT_DEBUG_CHANNEL(spoolss); WINE_DEFAULT_DEBUG_CHANNEL(spoolss);
@ -153,25 +153,6 @@ static CRITICAL_SECTION backend_cs = { &backend_cs_debug, -1, 0, 0, 0, 0 };
static WCHAR localsplW[] = L"localspl.dll"; static WCHAR localsplW[] = L"localspl.dll";
/******************************************************************
* strdupW [internal]
*
* create a copy of a unicode-string
*
*/
static LPWSTR strdupW(LPCWSTR p)
{
LPWSTR ret;
DWORD len;
if(!p) return NULL;
len = (lstrlenW(p) + 1) * sizeof(WCHAR);
ret = heap_alloc(len);
memcpy(ret, p, len);
return ret;
}
/****************************************************************** /******************************************************************
* backend_unload_all [internal] * backend_unload_all [internal]
* *
@ -183,10 +164,10 @@ void backend_unload_all(void)
while (used_backends > 0) { while (used_backends > 0) {
used_backends--; used_backends--;
FreeLibrary(backend[used_backends]->dll); FreeLibrary(backend[used_backends]->dll);
heap_free(backend[used_backends]->dllname); free(backend[used_backends]->dllname);
heap_free(backend[used_backends]->name); free(backend[used_backends]->name);
heap_free(backend[used_backends]->regroot); free(backend[used_backends]->regroot);
heap_free(backend[used_backends]); free(backend[used_backends]);
backend[used_backends] = NULL; backend[used_backends] = NULL;
} }
LeaveCriticalSection(&backend_cs); LeaveCriticalSection(&backend_cs);
@ -217,15 +198,15 @@ static backend_t * backend_load(LPWSTR dllname, LPWSTR name, LPWSTR regroot)
EnterCriticalSection(&backend_cs); EnterCriticalSection(&backend_cs);
id = used_backends; id = used_backends;
backend[id] = heap_alloc_zero(sizeof(backend_t)); backend[id] = calloc(1, sizeof(backend_t));
if (!backend[id]) { if (!backend[id]) {
LeaveCriticalSection(&backend_cs); LeaveCriticalSection(&backend_cs);
return NULL; return NULL;
} }
backend[id]->dllname = strdupW(dllname); backend[id]->dllname = wcsdup(dllname);
backend[id]->name = strdupW(name); backend[id]->name = wcsdup(name);
backend[id]->regroot = strdupW(regroot); backend[id]->regroot = wcsdup(regroot);
backend[id]->dll = LoadLibraryW(dllname); backend[id]->dll = LoadLibraryW(dllname);
if (backend[id]->dll) { if (backend[id]->dll) {
@ -244,10 +225,10 @@ static backend_t * backend_load(LPWSTR dllname, LPWSTR name, LPWSTR regroot)
} }
FreeLibrary(backend[id]->dll); FreeLibrary(backend[id]->dll);
} }
heap_free(backend[id]->dllname); free(backend[id]->dllname);
heap_free(backend[id]->name); free(backend[id]->name);
heap_free(backend[id]->regroot); free(backend[id]->regroot);
heap_free(backend[id]); free(backend[id]);
backend[id] = NULL; backend[id] = NULL;
LeaveCriticalSection(&backend_cs); LeaveCriticalSection(&backend_cs);
WARN("failed to init %s: %lu\n", debugstr_w(dllname), GetLastError()); WARN("failed to init %s: %lu\n", debugstr_w(dllname), GetLastError());