mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
Make map_total_allocation_size public; Add map_total_allocation_size_from_value
This commit is contained in:
@@ -333,7 +333,7 @@ map_kvh_data_values_dynamic :: proc "contextless" (m: Raw_Map, #no_alias info: ^
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@(private, require_results)
|
@(require_results)
|
||||||
map_total_allocation_size :: #force_inline proc "contextless" (capacity: uintptr, info: ^Map_Info) -> uintptr {
|
map_total_allocation_size :: #force_inline proc "contextless" (capacity: uintptr, info: ^Map_Info) -> uintptr {
|
||||||
round :: #force_inline proc "contextless" (value: uintptr) -> uintptr {
|
round :: #force_inline proc "contextless" (value: uintptr) -> uintptr {
|
||||||
CACHE_MASK :: MAP_CACHE_LINE_SIZE - 1
|
CACHE_MASK :: MAP_CACHE_LINE_SIZE - 1
|
||||||
@@ -350,6 +350,12 @@ map_total_allocation_size :: #force_inline proc "contextless" (capacity: uintptr
|
|||||||
return size
|
return size
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@(require_results)
|
||||||
|
map_total_allocation_size_from_value :: #force_inline proc "contextless" (m: $M/map[$K]$V) -> uintptr {
|
||||||
|
return map_total_allocation_size(uintptr(cap(m)), map_info(M))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// The only procedure which needs access to the context is the one which allocates the map.
|
// The only procedure which needs access to the context is the one which allocates the map.
|
||||||
@(require_results)
|
@(require_results)
|
||||||
map_alloc_dynamic :: proc "odin" (info: ^Map_Info, log2_capacity: uintptr, allocator := context.allocator, loc := #caller_location) -> (result: Raw_Map, err: Allocator_Error) {
|
map_alloc_dynamic :: proc "odin" (info: ^Map_Info, log2_capacity: uintptr, allocator := context.allocator, loc := #caller_location) -> (result: Raw_Map, err: Allocator_Error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user