diff options
-rw-r--r-- | rts/linker/PEi386.c | 20 | ||||
-rw-r--r-- | rts/win32/IOManager.c | 16 | ||||
-rw-r--r-- | rts/win32/OSThreads.c | 18 | ||||
-rw-r--r-- | rts/win32/WorkQueue.c | 7 | ||||
-rw-r--r-- | rts/xxhash.c | 8 |
5 files changed, 32 insertions, 37 deletions
diff --git a/rts/linker/PEi386.c b/rts/linker/PEi386.c index 6585c36bf0..d7fef79afb 100644 --- a/rts/linker/PEi386.c +++ b/rts/linker/PEi386.c @@ -735,7 +735,7 @@ addDLL_PEi386( pathchar *dll_name, HINSTANCE *loaded ) error: stgFree(buf); - char* errormsg = malloc(sizeof(char) * 80); + char* errormsg = stgMallocBytes(sizeof(char) * 80, "addDLL_PEi386"); snprintf(errormsg, 80, "addDLL: %" PATH_FMT " or dependencies not loaded. (Win32 error %lu)", dll_name, GetLastError()); /* LoadLibrary failed; return a ptr to the error msg. */ return errormsg; @@ -745,7 +745,7 @@ pathchar* findSystemLibrary_PEi386( pathchar* dll_name ) { const unsigned int init_buf_size = 1024; unsigned int bufsize = init_buf_size; - wchar_t* result = malloc(sizeof(wchar_t) * bufsize); + wchar_t* result = stgMallocBytes(sizeof(wchar_t) * bufsize, "findSystemLibrary_PEi386"); DWORD wResult = SearchPathW(NULL, dll_name, NULL, bufsize, result, NULL); if (wResult > bufsize) { @@ -755,7 +755,7 @@ pathchar* findSystemLibrary_PEi386( pathchar* dll_name ) if (!wResult) { - free(result); + stgFree(result); return NULL; } @@ -773,7 +773,7 @@ HsPtr addLibrarySearchPath_PEi386(pathchar* dll_path) int bufsize = init_buf_size; // Make sure the path is an absolute path - WCHAR* abs_path = malloc(sizeof(WCHAR) * init_buf_size); + WCHAR* abs_path = stgMallocBytes(sizeof(WCHAR) * init_buf_size, "addLibrarySearchPath_PEi386(1)"); DWORD wResult = GetFullPathNameW(dll_path, bufsize, abs_path, NULL); if (!wResult){ IF_DEBUG(linker, debugBelch("addLibrarySearchPath[GetFullPathNameW]: %" PATH_FMT " (Win32 error %lu)", dll_path, GetLastError())); @@ -791,7 +791,7 @@ HsPtr addLibrarySearchPath_PEi386(pathchar* dll_path) else { warnMissingKBLibraryPaths(); - WCHAR* str = malloc(sizeof(WCHAR) * init_buf_size); + WCHAR* str = stgMallocBytes(sizeof(WCHAR) * init_buf_size, "addLibrarySearchPath_PEi386(2)"); wResult = GetEnvironmentVariableW(L"PATH", str, bufsize); if (wResult > init_buf_size) { @@ -804,7 +804,7 @@ HsPtr addLibrarySearchPath_PEi386(pathchar* dll_path) } bufsize = wResult + 2 + pathlen(abs_path); - wchar_t* newPath = malloc(sizeof(wchar_t) * bufsize); + wchar_t* newPath = stgMallocBytes(sizeof(wchar_t) * bufsize, "addLibrarySearchPath_PEi386(3)"); wcscpy(newPath, abs_path); wcscat(newPath, L";"); @@ -813,19 +813,19 @@ HsPtr addLibrarySearchPath_PEi386(pathchar* dll_path) sysErrorBelch("addLibrarySearchPath[SetEnvironmentVariableW]: %" PATH_FMT " (Win32 error %lu)", abs_path, GetLastError()); } - free(newPath); - free(abs_path); + stgFree(newPath); + stgFree(abs_path); return str; } if (!result) { sysErrorBelch("addLibrarySearchPath: %" PATH_FMT " (Win32 error %lu)", abs_path, GetLastError()); - free(abs_path); + stgFree(abs_path); return NULL; } - free(abs_path); + stgFree(abs_path); return result; } diff --git a/rts/win32/IOManager.c b/rts/win32/IOManager.c index 47bcf4bcf4..46bf534114 100644 --- a/rts/win32/IOManager.c +++ b/rts/win32/IOManager.c @@ -265,7 +265,7 @@ IOWorkerProc(PVOID param) } // Free the WorkItem DeregisterWorkItem(iom,work); - free(work); + stgFree(work); } else { fprintf(stderr, "unable to fetch work; fatal.\n"); fflush(stderr); @@ -321,7 +321,7 @@ StartIOManager(void) wq = NewWorkQueue(); if ( !wq ) return false; - ioMan = (IOManagerState*)malloc(sizeof(IOManagerState)); + ioMan = (IOManagerState*)stgMallocBytes(sizeof(IOManagerState), "StartIOManager"); if (!ioMan) { FreeWorkQueue(wq); @@ -332,7 +332,7 @@ StartIOManager(void) hExit = CreateEvent ( NULL, true, false, NULL ); if ( !hExit ) { FreeWorkQueue(wq); - free(ioMan); + stgFree(ioMan); return false; } @@ -440,8 +440,7 @@ AddIORequest ( int fd, { ASSERT(ioMan); - WorkItem* wItem = (WorkItem*)malloc(sizeof(WorkItem)); - if (!wItem) return 0; + WorkItem* wItem = (WorkItem*)stgMallocBytse(sizeof(WorkItem), "AddIORequest"); unsigned int reqID = ioMan->requestID++; @@ -471,8 +470,7 @@ AddDelayRequest ( HsInt usecs, { ASSERT(ioMan); - WorkItem* wItem = (WorkItem*)malloc(sizeof(WorkItem)); - if (!wItem) return false; + WorkItem* wItem = (WorkItem*)stgMallocBytes(sizeof(WorkItem), "AddDelayRequest"); unsigned int reqID = ioMan->requestID++; @@ -498,7 +496,7 @@ AddProcRequest ( void* proc, { ASSERT(ioMan); - WorkItem* wItem = (WorkItem*)malloc(sizeof(WorkItem)); + WorkItem* wItem = (WorkItem*)stgMallocBytes(sizeof(WorkItem), "AddProcRequest"); if (!wItem) return false; unsigned int reqID = ioMan->requestID++; @@ -542,7 +540,7 @@ void ShutdownIOManager ( bool wait_threads ) barf("timeEndPeriod failed"); } - free(ioMan); + stgFree(ioMan); ioMan = NULL; } } diff --git a/rts/win32/OSThreads.c b/rts/win32/OSThreads.c index 4701c344a0..f3bdefd998 100644 --- a/rts/win32/OSThreads.c +++ b/rts/win32/OSThreads.c @@ -171,19 +171,19 @@ void freeThreadingResources (void) { if (cpuGroupCache) { - free(cpuGroupCache); + stgFree(cpuGroupCache); cpuGroupCache = NULL; } if (cpuGroupCumulativeCache) { - free(cpuGroupCumulativeCache); + stgFree(cpuGroupCumulativeCache); cpuGroupCumulativeCache = NULL; } if (cpuGroupDistCache) { - free(cpuGroupDistCache); + stgFree(cpuGroupDistCache); cpuGroupDistCache = NULL; } } @@ -240,7 +240,7 @@ getProcessorsDistribution (void) if (!cpuGroupDistCache) { uint8_t n_groups = getNumberOfProcessorsGroups(); - cpuGroupDistCache = malloc(n_groups * sizeof(uint8_t)); + cpuGroupDistCache = stgMallocBytes(n_groups * sizeof(uint8_t), "getProcessorsDistribution"); memset(cpuGroupDistCache, MAXIMUM_PROCESSORS, n_groups * sizeof(uint8_t)); for (int i = 0; i < n_groups; i++) @@ -265,7 +265,7 @@ getProcessorsCumulativeSum(void) if (!cpuGroupCumulativeCache) { uint8_t n_groups = getNumberOfProcessorsGroups(); - cpuGroupCumulativeCache = malloc(n_groups * sizeof(uint32_t)); + cpuGroupCumulativeCache = stgMallocBytes(n_groups * sizeof(uint32_t), "getProcessorsCumulativeSum"); memset(cpuGroupCumulativeCache, 0, n_groups * sizeof(uint32_t)); #if defined(x86_64_HOST_ARCH) @@ -306,7 +306,7 @@ createProcessorGroupMap (void) uint32_t numProcs = getNumberOfProcessors(); - cpuGroupCache = malloc(numProcs * sizeof(uint8_t)); + cpuGroupCache = stgMallocBytes(numProcs * sizeof(uint8_t), "createProcessorGroupMap"); /* For 32bit Windows and 64bit older than Windows 7, create a default mapping. */ memset(cpuGroupCache, 0, numProcs * sizeof(uint8_t)); @@ -386,7 +386,7 @@ setThreadAffinity (uint32_t n, uint32_t m) // cap N of M ASSERT(n_groups > 0); ASSERT(n_proc > 0); - mask = malloc(n_groups * sizeof(DWORD_PTR)); + mask = stgMallocBytes(n_groups * sizeof(DWORD_PTR), "setThreadAffinity"); memset(mask, 0, n_groups * sizeof(DWORD_PTR)); /* The mask for the individual groups are all 0 based @@ -422,14 +422,14 @@ setThreadAffinity (uint32_t n, uint32_t m) // cap N of M { r = SetThreadAffinityMask(hThread, mask[i]); if (r == 0) { - free(mask); + stgFree(mask); sysErrorBelch("SetThreadAffinity"); stg_exit(EXIT_FAILURE); } } } - free(mask); + stgFree(mask); } void diff --git a/rts/win32/WorkQueue.c b/rts/win32/WorkQueue.c index dba20c668b..e89092f122 100644 --- a/rts/win32/WorkQueue.c +++ b/rts/win32/WorkQueue.c @@ -41,12 +41,7 @@ newSemaphore(int initCount, int max) WorkQueue* NewWorkQueue() { - WorkQueue* wq = (WorkQueue*)malloc(sizeof(WorkQueue)); - - if (!wq) { - queue_error("NewWorkQueue", "malloc() failed"); - return wq; - } + WorkQueue* wq = (WorkQueue*)stgMallocBytes(sizeof(WorkQueue), "NewWorkQueue"); memset(wq, 0, sizeof *wq); diff --git a/rts/xxhash.c b/rts/xxhash.c index fd63ba89dd..c72b4c2dad 100644 --- a/rts/xxhash.c +++ b/rts/xxhash.c @@ -98,9 +98,11 @@ ***************************************/ /*! Modify the local functions below should you wish to use some other memory routines * for malloc(), free() */ -#include <stdlib.h> -static void* XXH_malloc(size_t s) { return malloc(s); } -static void XXH_free (void* p) { free(p); } +#include "Rts.h" +#include "RtsUtils.h" + +static void* XXH_malloc(size_t s) { return stgMallocBytes(s, "XXH_malloc"); } +static void XXH_free (void* p) { stgFree(p); } /*! and for memcpy() */ #include <string.h> static void* XXH_memcpy(void* dest, const void* src, size_t size) { return memcpy(dest,src,size); } |