From c20477ec63094bd82f39fb7d72abec5b69b17ce4 Mon Sep 17 00:00:00 2001 From: cxl Date: Tue, 17 Dec 2013 13:13:15 +0000 Subject: [PATCH] Core: Heap fixes for Win32 git-svn-id: svn://ultimatepp.org/upp/trunk@6663 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/Core/HeapImp.h | 4 ++-- uppsrc/Core/heaputil.cpp | 18 +++++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/uppsrc/Core/HeapImp.h b/uppsrc/Core/HeapImp.h index 98f9d2469..634263e9a 100644 --- a/uppsrc/Core/HeapImp.h +++ b/uppsrc/Core/HeapImp.h @@ -9,8 +9,8 @@ void *LAlloc(size_t& size); void LFree(void *ptr); #ifdef MEMORY_SHRINK -void *FreeRaw4KB(void *ptr); -void *FreeRaw64KB(void *ptr); +void FreeRaw4KB(void *ptr); +void FreeRaw64KB(void *ptr); #endif struct Heap { diff --git a/uppsrc/Core/heaputil.cpp b/uppsrc/Core/heaputil.cpp index e1d389927..84cc119b6 100644 --- a/uppsrc/Core/heaputil.cpp +++ b/uppsrc/Core/heaputil.cpp @@ -73,17 +73,18 @@ void *SysAllocRaw(size_t size, size_t reqsize) size_t rsz = int(((size + 4095) & ~4095) >> 10); void *ptr = NULL; for(int pass = 0; pass < 2; pass++) { - if(sKB + rsz < sKBLimit) { + if(sKB + (int)rsz < sKBLimit) { #ifdef PLATFORM_WIN32 ptr = VirtualAlloc(NULL, size, MEM_RESERVE|MEM_COMMIT, PAGE_READWRITE); - #else - #ifdef PLATFORM_LINUX + #elif PLATFORM_LINUX ptr = mmap(0, size, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0); - #else - ptr = mmap(0, size, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0); - #endif if(ptr == MAP_FAILED) ptr = NULL; + #else + ptr = mmap(0, size, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0); + if(ptr == MAP_FAILED) + ptr = NULL; + #endif if(ptr) break; } @@ -91,7 +92,6 @@ void *SysAllocRaw(size_t size, size_t reqsize) MemoryShrink(); // Freeing large / small empty might help #endif } - #endif if(!ptr) OutOfMemoryPanic(reqsize); sKB += rsz; @@ -131,14 +131,14 @@ void *AllocRaw64KB(int reqsize) return ptr; } -void *FreeRaw4KB(void *ptr) +void FreeRaw4KB(void *ptr) { RTIMING("FreeRaw4KB"); SysFreeRaw(ptr, 4096); s4kb__--; } -void *FreeRaw64KB(void *ptr) +void FreeRaw64KB(void *ptr) { RTIMING("FreeRaw64KB"); SysFreeRaw(ptr, 65536);