mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
Treat .Mode_Not_Implemented as not an error when doing runtime.map_free_dynamic
This commit is contained in:
@@ -512,11 +512,8 @@ map_reserve_dynamic :: proc "odin" (#no_alias m: ^Raw_Map, #no_alias info: ^Map_
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
map_free_dynamic(m^, info, loc) or_return
|
|
||||||
|
|
||||||
m.data = resized.data
|
m.data = resized.data
|
||||||
|
return map_free_dynamic(m^, info, loc)
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -561,18 +558,19 @@ map_shrink_dynamic :: proc "odin" (#no_alias m: ^Raw_Map, #no_alias info: ^Map_I
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
map_free_dynamic(m^, info, loc) or_return
|
|
||||||
|
|
||||||
m.data = shrunk.data
|
m.data = shrunk.data
|
||||||
|
return map_free_dynamic(m^, info, loc)
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@(require_results)
|
@(require_results)
|
||||||
map_free_dynamic :: proc "odin" (m: Raw_Map, info: ^Map_Info, loc := #caller_location) -> Allocator_Error {
|
map_free_dynamic :: proc "odin" (m: Raw_Map, info: ^Map_Info, loc := #caller_location) -> Allocator_Error {
|
||||||
ptr := rawptr(map_data(m))
|
ptr := rawptr(map_data(m))
|
||||||
size := int(map_total_allocation_size(uintptr(map_cap(m)), info))
|
size := int(map_total_allocation_size(uintptr(map_cap(m)), info))
|
||||||
return mem_free_with_size(ptr, size, m.allocator, loc)
|
err := mem_free_with_size(ptr, size, m.allocator, loc)
|
||||||
|
if err == .Mode_Not_Implemented {
|
||||||
|
err = nil
|
||||||
|
}
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@(require_results)
|
@(require_results)
|
||||||
@@ -719,7 +717,7 @@ __dynamic_map_get :: proc "contextless" (#no_alias m: ^Raw_Map, #no_alias info:
|
|||||||
|
|
||||||
// IMPORTANT: USED WITHIN THE COMPILER
|
// IMPORTANT: USED WITHIN THE COMPILER
|
||||||
__dynamic_map_check_grow :: proc "odin" (#no_alias m: ^Raw_Map, #no_alias info: ^Map_Info, loc := #caller_location) -> Allocator_Error {
|
__dynamic_map_check_grow :: proc "odin" (#no_alias m: ^Raw_Map, #no_alias info: ^Map_Info, loc := #caller_location) -> Allocator_Error {
|
||||||
if m.len >= map_resize_threshold(m^) {
|
if m.len >= map_resize_threshold(m^) {
|
||||||
return map_grow_dynamic(m, info, loc)
|
return map_grow_dynamic(m, info, loc)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
@@ -738,7 +736,7 @@ __dynamic_map_set :: proc "odin" (#no_alias m: ^Raw_Map, #no_alias info: ^Map_In
|
|||||||
}
|
}
|
||||||
|
|
||||||
if __dynamic_map_check_grow(m, info, loc) != nil {
|
if __dynamic_map_check_grow(m, info, loc) != nil {
|
||||||
return nil
|
panic("HERE")
|
||||||
}
|
}
|
||||||
|
|
||||||
result := map_insert_hash_dynamic(m, info, hash, uintptr(key), uintptr(value))
|
result := map_insert_hash_dynamic(m, info, hash, uintptr(key), uintptr(value))
|
||||||
|
|||||||
Reference in New Issue
Block a user