Minor changes to StringMap allocation

This commit is contained in:
gingerBill
2023-01-14 12:58:45 +00:00
parent 1ab90de493
commit 868aa4c14a
3 changed files with 11 additions and 5 deletions

View File

@@ -1,5 +1,11 @@
GB_STATIC_ASSERT(sizeof(MapIndex) == sizeof(u32));
enum {
STRING_MAP_CACHE_LINE_SIZE_POW = 6,
STRING_MAP_CACHE_LINE_SIZE = 1<<STRING_MAP_CACHE_LINE_SIZE_POW,
STRING_MAP_CACHE_LINE_MASK = STRING_MAP_CACHE_LINE_SIZE-1,
};
struct StringHashKey {
u32 hash;
String string;
@@ -79,13 +85,13 @@ gb_internal gb_inline void string_map_destroy(StringMap<T> *h) {
template <typename T>
gb_internal void string_map__resize_hashes(StringMap<T> *h, usize count) {
h->hashes_count = cast(u32)resize_array_raw(&h->hashes, string_map_allocator(), h->hashes_count, count);
h->hashes_count = cast(u32)resize_array_raw(&h->hashes, string_map_allocator(), h->hashes_count, count, STRING_MAP_CACHE_LINE_SIZE);
}
template <typename T>
gb_internal void string_map__reserve_entries(StringMap<T> *h, usize capacity) {
h->entries_capacity = cast(u32)resize_array_raw(&h->entries, string_map_allocator(), h->entries_capacity, capacity);
h->entries_capacity = cast(u32)resize_array_raw(&h->entries, string_map_allocator(), h->entries_capacity, capacity, STRING_MAP_CACHE_LINE_SIZE);
}