Browse Source

[mem]: Rename dynamic pool to dynamic arena

flysand7 1 year ago
parent
commit
f8641ddd1b
1 changed files with 37 additions and 26 deletions
  1. 37 26
      core/mem/allocators.odin

+ 37 - 26
core/mem/allocators.odin

@@ -788,8 +788,19 @@ small_stack_allocator_proc :: proc(
 }
 
 
-
-Dynamic_Pool :: struct {
+/* old stuff */
+Dynamic_Pool :: Dynamic_Arena
+DYNAMIC_POOL_BLOCK_SIZE_DEFAULT :: DYNAMIC_ARENA_BLOCK_SIZE_DEFAULT
+DYNAMIC_POOL_OUT_OF_BAND_SIZE_DEFAULT :: DYNAMIC_ARENA_OUT_OF_BAND_SIZE_DEFAULT
+dynamic_pool_allocator_proc :: dynamic_arena_allocator_proc
+dynamic_pool_free_all :: dynamic_arena_free_all
+dynamic_pool_reset :: dynamic_arena_reset
+dynamic_pool_alloc_bytes :: dynamic_arena_alloc_bytes
+dynamic_pool_alloc :: dynamic_arena_alloc
+dynamic_pool_init :: dynamic_arena_init
+dynamic_pool_allocator :: dynamic_arena_allocator
+
+Dynamic_Arena :: struct {
 	block_size:    int,
 	out_band_size: int,
 	alignment:     int,
@@ -805,10 +816,10 @@ Dynamic_Pool :: struct {
 	block_allocator: Allocator,
 }
 
-DYNAMIC_POOL_BLOCK_SIZE_DEFAULT       :: 65536
-DYNAMIC_POOL_OUT_OF_BAND_SIZE_DEFAULT :: 6554
+DYNAMIC_ARENA_BLOCK_SIZE_DEFAULT :: 65536
+DYNAMIC_ARENA_OUT_OF_BAND_SIZE_DEFAULT :: 6554
 
-dynamic_pool_allocator_proc :: proc(
+dynamic_arena_allocator_proc :: proc(
 	allocator_data: rawptr,
 	mode: Allocator_Mode,
 	size: int,
@@ -817,21 +828,21 @@ dynamic_pool_allocator_proc :: proc(
 	old_size: int,
 	loc := #caller_location,
 ) -> ([]byte, Allocator_Error) {
-	pool := (^Dynamic_Pool)(allocator_data)
+	pool := (^Dynamic_Arena)(allocator_data)
 
 	switch mode {
 	case .Alloc, .Alloc_Non_Zeroed:
-		return dynamic_pool_alloc_bytes(pool, size)
+		return dynamic_arena_alloc_bytes(pool, size)
 	case .Free:
 		return nil, .Mode_Not_Implemented
 	case .Free_All:
-		dynamic_pool_free_all(pool)
+		dynamic_arena_free_all(pool)
 		return nil, nil
 	case .Resize, .Resize_Non_Zeroed:
 		if old_size >= size {
 			return byte_slice(old_memory, size), nil
 		}
-		data, err := dynamic_pool_alloc_bytes(pool, size)
+		data, err := dynamic_arena_alloc_bytes(pool, size)
 		if err == nil {
 			runtime.copy(data, byte_slice(old_memory, old_size))
 		}
@@ -856,21 +867,20 @@ dynamic_pool_allocator_proc :: proc(
 	return nil, nil
 }
 
-
 @(require_results)
-dynamic_pool_allocator :: proc(pool: ^Dynamic_Pool) -> Allocator {
+dynamic_arena_allocator :: proc(pool: ^Dynamic_Arena) -> Allocator {
 	return Allocator{
-		procedure = dynamic_pool_allocator_proc,
+		procedure = dynamic_arena_allocator_proc,
 		data = pool,
 	}
 }
 
-dynamic_pool_init :: proc(
-	pool: ^Dynamic_Pool,
+dynamic_arena_init :: proc(
+	pool: ^Dynamic_Arena,
 	block_allocator := context.allocator,
 	array_allocator := context.allocator,
-	block_size := DYNAMIC_POOL_BLOCK_SIZE_DEFAULT,
-	out_band_size := DYNAMIC_POOL_OUT_OF_BAND_SIZE_DEFAULT,
+	block_size := DYNAMIC_ARENA_BLOCK_SIZE_DEFAULT,
+	out_band_size := DYNAMIC_ARENA_OUT_OF_BAND_SIZE_DEFAULT,
 	alignment := 8,
 ) {
 	pool.block_size = block_size
@@ -882,8 +892,8 @@ dynamic_pool_init :: proc(
 	pool.used_blocks.allocator = array_allocator
 }
 
-dynamic_pool_destroy :: proc(pool: ^Dynamic_Pool) {
-	dynamic_pool_free_all(pool)
+dynamic_arena_destroy :: proc(pool: ^Dynamic_Arena) {
+	dynamic_arena_free_all(pool)
 	delete(pool.unused_blocks)
 	delete(pool.used_blocks)
 	delete(pool.out_band_allocations)
@@ -891,14 +901,14 @@ dynamic_pool_destroy :: proc(pool: ^Dynamic_Pool) {
 }
 
 @(require_results)
-dynamic_pool_alloc :: proc(pool: ^Dynamic_Pool, bytes: int) -> (rawptr, Allocator_Error) {
-	data, err := dynamic_pool_alloc_bytes(pool, bytes)
+dynamic_arena_alloc :: proc(pool: ^Dynamic_Arena, bytes: int) -> (rawptr, Allocator_Error) {
+	data, err := dynamic_arena_alloc_bytes(pool, bytes)
 	return raw_data(data), err
 }
 
 @(require_results)
-dynamic_pool_alloc_bytes :: proc(p: ^Dynamic_Pool, bytes: int) -> ([]byte, Allocator_Error) {
-	cycle_new_block :: proc(p: ^Dynamic_Pool) -> (err: Allocator_Error) {
+dynamic_arena_alloc_bytes :: proc(p: ^Dynamic_Arena, bytes: int) -> ([]byte, Allocator_Error) {
+	cycle_new_block :: proc(p: ^Dynamic_Arena) -> (err: Allocator_Error) {
 		if p.block_allocator.procedure == nil {
 			panic("You must call pool_init on a Pool before using it")
 		}
@@ -960,8 +970,7 @@ dynamic_pool_alloc_bytes :: proc(p: ^Dynamic_Pool, bytes: int) -> ([]byte, Alloc
 	return ([^]byte)(memory)[:bytes], nil
 }
 
-
-dynamic_pool_reset :: proc(p: ^Dynamic_Pool) {
+dynamic_arena_reset :: proc(p: ^Dynamic_Arena) {
 	if p.current_block != nil {
 		append(&p.unused_blocks, p.current_block)
 		p.current_block = nil
@@ -980,8 +989,8 @@ dynamic_pool_reset :: proc(p: ^Dynamic_Pool) {
 	p.bytes_left = 0 // Make new allocations call `cycle_new_block` again.
 }
 
-dynamic_pool_free_all :: proc(p: ^Dynamic_Pool) {
-	dynamic_pool_reset(p)
+dynamic_arena_free_all :: proc(p: ^Dynamic_Arena) {
+	dynamic_arena_reset(p)
 
 	for block in p.unused_blocks {
 		free(block, p.block_allocator)
@@ -989,6 +998,8 @@ dynamic_pool_free_all :: proc(p: ^Dynamic_Pool) {
 	clear(&p.unused_blocks)
 }
 
+
+
 panic_allocator_proc :: proc(
 	allocator_data: rawptr,
 	mode: Allocator_Mode,