Browse Source

Change `Raw_Map.len` to `int` from `uintptr`

gingerBill 2 years ago
parent
commit
2fc3da3fde
2 changed files with 3 additions and 3 deletions
  1. 1 1
      core/runtime/core.odin
  2. 2 2
      core/runtime/dynamic_map_internal.odin

+ 1 - 1
core/runtime/core.odin

@@ -416,7 +416,7 @@ Raw_Map :: struct {
 	// Map_Hash directly, though for consistency sake it's written as if it were
 	// an array of Map_Cell(Map_Hash).
 	data:      uintptr,   // 8-bytes on 64-bits, 4-bytes on 32-bits
-	len:       uintptr,   // 8-bytes on 64-bits, 4-bytes on 32-bits
+	len:       int,       // 8-bytes on 64-bits, 4-bytes on 32-bits
 	allocator: Allocator, // 16-bytes on 64-bits, 8-bytes on 32-bits
 }
 

+ 2 - 2
core/runtime/dynamic_map_internal.odin

@@ -139,7 +139,7 @@ map_cell_index_dynamic_const :: proc "contextless" (base: uintptr, #no_alias inf
 
 // len() for map
 map_len :: #force_inline proc "contextless" (m: Raw_Map) -> int {
-	return int(m.len)
+	return m.len
 }
 
 // cap() for map
@@ -591,7 +591,7 @@ map_shrink_dynamic :: proc(#no_alias m: ^Raw_Map, #no_alias info: ^Map_Info) ->
 	// one minus the current log2 capacity's resize threshold. That is the shrunk
 	// map needs to be within the max load factor.
 	log2_capacity := map_log2_cap(m^)
-	if m.len >= map_load_factor(log2_capacity - 1) {
+	if uintptr(m.len) >= map_load_factor(log2_capacity - 1) {
 		return nil
 	}