Misc cleanups
This commit is contained in:
+2
-2
@@ -25,7 +25,7 @@ MemoryBlock *memoryblock_allocate(size_t size, size_t commit_size)
|
|||||||
void arena_init(Arena *arena, const ArenaParams *params)
|
void arena_init(Arena *arena, const ArenaParams *params)
|
||||||
{
|
{
|
||||||
Assert(params->size > MemoryBlock_Header_Size);
|
Assert(params->size > MemoryBlock_Header_Size);
|
||||||
Assert(params->size < (U32_Max - platform_page_size())); // keep last page for overflow detection
|
Assert(params->size < (U32_Max - Max(params->commit_size, platform_page_size()))); // Reserving last piece so our math doesn't overflow
|
||||||
Assert(IsPow2(params->commit_size));
|
Assert(IsPow2(params->commit_size));
|
||||||
|
|
||||||
MemoryBlock *block = memoryblock_allocate(params->size, params->commit_size);
|
MemoryBlock *block = memoryblock_allocate(params->size, params->commit_size);
|
||||||
@@ -83,8 +83,8 @@ void *arena_push(Arena *arena, U32 size, U32 align)
|
|||||||
if (block->committed_pos < end_pos) {
|
if (block->committed_pos < end_pos) {
|
||||||
// Commit more memory
|
// Commit more memory
|
||||||
U32 aligned_end_pos = AlignToPageEnd(start_pos + size);
|
U32 aligned_end_pos = AlignToPageEnd(start_pos + size);
|
||||||
|
|
||||||
U32 aligned_size = RoundUpToMultiple(aligned_end_pos - block->committed_pos, arena->commit_size);
|
U32 aligned_size = RoundUpToMultiple(aligned_end_pos - block->committed_pos, arena->commit_size);
|
||||||
|
|
||||||
memory_commit(&block->base[block->committed_pos], aligned_size);
|
memory_commit(&block->base[block->committed_pos], aligned_size);
|
||||||
block->committed_pos += aligned_size;
|
block->committed_pos += aligned_size;
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -83,8 +83,8 @@ static void arena_test_2(void)
|
|||||||
((U8*)ptr)[0] = 0x37;
|
((U8*)ptr)[0] = 0x37;
|
||||||
ptr = arena_push(&arena, 1, KB(16));
|
ptr = arena_push(&arena, 1, KB(16));
|
||||||
((U8*)ptr)[0] = 0x73;
|
((U8*)ptr)[0] = 0x73;
|
||||||
ptr = arena_push(&arena, 1, KB(4));
|
ptr = arena_push(&arena, 0, KB(4));
|
||||||
((U8*)ptr)[0] = 0x73;
|
//((U8*)ptr)[0] = 0x73;
|
||||||
arena_pop_to(&arena, 1089);
|
arena_pop_to(&arena, 1089);
|
||||||
arena_dump(&arena);
|
arena_dump(&arena);
|
||||||
arena_pop_to(&arena, 0);
|
arena_pop_to(&arena, 0);
|
||||||
|
|||||||
+6
-6
@@ -12,18 +12,18 @@ void memory_decommit(void *mem, size_t size);
|
|||||||
void memory_free(void *mem, size_t size);
|
void memory_free(void *mem, size_t size);
|
||||||
|
|
||||||
|
|
||||||
static INLINE size_t AlignToPageEnd(size_t size)
|
static INLINE size_t AlignToPageEnd(size_t value)
|
||||||
{
|
{
|
||||||
U32 page_size = platform_page_size();
|
U32 page_size = platform_page_size();
|
||||||
size_t aligned_size = AlignUpPow2(size, page_size);
|
size_t aligned_value = AlignUpPow2(value, page_size);
|
||||||
|
|
||||||
return aligned_size;
|
return aligned_value;
|
||||||
}
|
}
|
||||||
|
|
||||||
static INLINE size_t AlignToPageStart(size_t size)
|
static INLINE size_t AlignToPageStart(size_t value)
|
||||||
{
|
{
|
||||||
U32 page_size = platform_page_size();
|
U32 page_size = platform_page_size();
|
||||||
size_t aligned_size = AlignDownPow2(size, page_size);
|
size_t aligned_value= AlignDownPow2(value, page_size);
|
||||||
|
|
||||||
return aligned_size;
|
return aligned_value;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user