@@ -33,11 +33,11 @@ #import "OFInvalidArgumentException.h" #import "OFNotImplementedException.h" #import "OFOutOfMemoryException.h" #import "OFOutOfRangeException.h" -#define CHUNK_SIZE 16 +static const size_t chunkSize = 16; #if defined(HAVE_MMAP) && defined(HAVE_MLOCK) && defined(MAP_ANON) struct page { struct page *next, *previous; void *map; @@ -96,11 +96,11 @@ static struct page * addPage(bool allowPreallocated) { size_t pageSize = [OFSystemInfo pageSize]; - size_t mapSize = OFRoundUpToPowerOf2(CHAR_BIT, pageSize / CHUNK_SIZE) / + size_t mapSize = OFRoundUpToPowerOf2(CHAR_BIT, pageSize / chunkSize) / CHAR_BIT; struct page *page; # if !defined(OF_HAVE_COMPILER_TLS) && defined(OF_HAVE_THREADS) struct page *lastPage; # endif @@ -182,11 +182,11 @@ static void removePageIfEmpty(struct page *page) { unsigned char *map = page->map; size_t pageSize = [OFSystemInfo pageSize]; - size_t mapSize = OFRoundUpToPowerOf2(CHAR_BIT, pageSize / CHUNK_SIZE) / + size_t mapSize = OFRoundUpToPowerOf2(CHAR_BIT, pageSize / chunkSize) / CHAR_BIT; for (size_t i = 0; i < mapSize; i++) if (map[i] != 0) return; @@ -217,16 +217,16 @@ static void * allocateMemory(struct page *page, size_t bytes) { size_t chunks, chunksLeft, pageSize, i, firstChunk; - bytes = OFRoundUpToPowerOf2(CHUNK_SIZE, bytes); - chunks = chunksLeft = bytes / CHUNK_SIZE; + bytes = OFRoundUpToPowerOf2(chunkSize, bytes); + chunks = chunksLeft = bytes / chunkSize; firstChunk = 0; pageSize = [OFSystemInfo pageSize]; - for (i = 0; i < pageSize / CHUNK_SIZE; i++) { + for (i = 0; i < pageSize / chunkSize; i++) { if (OFBitsetIsSet(page->map, i)) { chunksLeft = chunks; firstChunk = i + 1; continue; } @@ -237,11 +237,11 @@ if (chunksLeft == 0) { for (size_t j = firstChunk; j < firstChunk + chunks; j++) OFBitsetSet(page->map, j); - return page->page + (CHUNK_SIZE * firstChunk); + return page->page + (chunkSize * firstChunk); } return NULL; } @@ -248,13 +248,13 @@ static void freeMemory(struct page *page, void *pointer, size_t bytes) { size_t chunks, chunkIndex; - bytes = OFRoundUpToPowerOf2(CHUNK_SIZE, bytes); - chunks = bytes / CHUNK_SIZE; - chunkIndex = ((uintptr_t)pointer - (uintptr_t)page->page) / CHUNK_SIZE; + bytes = OFRoundUpToPowerOf2(chunkSize, bytes); + chunks = bytes / chunkSize; + chunkIndex = ((uintptr_t)pointer - (uintptr_t)page->page) / chunkSize; OFZeroMemory(pointer, bytes); for (size_t i = 0; i < chunks; i++) OFBitsetClear(page->map, chunkIndex + i);