Răsfoiți Sursa

Merge pull request #4957 from Barinzaya/fix-mem-make_map

Fix `mem.make_map`
Jeroen van Rijn 5 luni în urmă
părinte
comite
f578ce3acb
1 a modificat fișierele cu 20 adăugiri și 3 ștergeri
  1. 20 3
      core/mem/alloc.odin

+ 20 - 3
core/mem/alloc.odin

@@ -953,6 +953,22 @@ make_dynamic_array_len_cap :: proc(
 	return runtime.make_dynamic_array_len_cap(T, len, cap, allocator, loc)
 }
 
+/*
+Create a map with no initial allocation.
+
+This procedure creates a map of type `T` with no initial allocation, which will
+use the allocator specified by `allocator` as its backing allocator when it
+allocates.
+*/
+@(require_results)
+make_map :: proc(
+	$T: typeid/map[$K]$E,
+	allocator := context.allocator,
+	loc := #caller_location,
+) -> (m: T) {
+	return runtime.make_map(T, allocator, loc)
+}
+
 /*
 Allocate a map.
 
@@ -961,13 +977,13 @@ This procedure creates a map of type `T` with initial capacity specified by
 allocator.
 */
 @(require_results)
-make_map :: proc(
+make_map_cap :: proc(
 	$T: typeid/map[$K]$E,
-	#any_int cap: int = 1<<runtime.MAP_MIN_LOG2_CAPACITY,
+	#any_int cap: int,
 	allocator := context.allocator,
 	loc := #caller_location,
 ) -> (m: T, err: Allocator_Error) {
-	return runtime.make_map(T, cap, allocator, loc)
+	return runtime.make_map_cap(T, cap, allocator, loc)
 }
 
 /*
@@ -1060,6 +1076,7 @@ make :: proc{
 	make_dynamic_array_len,
 	make_dynamic_array_len_cap,
 	make_map,
+	make_map_cap,
 	make_multi_pointer,
 	make_soa_slice,
 	make_soa_dynamic_array,