diff options
| author | gingerBill <gingerBill@users.noreply.github.com> | 2025-10-27 11:29:13 +0000 |
|---|---|---|
| committer | gingerBill <gingerBill@users.noreply.github.com> | 2025-10-27 11:29:13 +0000 |
| commit | 8bdc322d6abe47206963a8739bf1c9582037f2f9 (patch) | |
| tree | 6fa4151667972133c30da538e95d6677ed5c045b /src/ptr_map.cpp | |
| parent | 288434ab30bb8038d9767151adc478cd82f2ef6b (diff) | |
Just use a method instead
Diffstat (limited to 'src/ptr_map.cpp')
| -rw-r--r-- | src/ptr_map.cpp | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/ptr_map.cpp b/src/ptr_map.cpp index 19ba37085..932f05d69 100644 --- a/src/ptr_map.cpp +++ b/src/ptr_map.cpp @@ -13,16 +13,22 @@ enum : MapIndex { MAP_SENTINEL = ~(MapIndex)0 }; template <typename T> struct PtrMapConstant { - static constexpr void const *TOMBSTONE = reinterpret_cast<void *>(~(uintptr)0); + static gb_inline T const TOMBSTONE() { + return (T)reinterpret_cast<void *>(~(uintptr)0); + } }; template <> struct PtrMapConstant<u64> { - static constexpr u64 TOMBSTONE = ~(u64)0; + static gb_inline u64 const TOMBSTONE() { + return ~(u64)0; + } }; template <> struct PtrMapConstant<i64> { - static constexpr i64 TOMBSTONE = ~(i64)0; + static gb_inline i64 const TOMBSTONE() { + return ~(i64)0; + } }; template <typename K, typename V> @@ -113,7 +119,7 @@ gb_internal void map__insert(PtrMap<K, V> *h, K key, V const &value) { MapIndex original_index = index; do { auto *entry = h->entries+index; - if (!entry->key || entry->key == PtrMapConstant<K>::TOMBSTONE) { + if (!entry->key || entry->key == PtrMapConstant<K>::TOMBSTONE()) { entry->key = key; entry->value = value; h->count += 1; @@ -161,7 +167,7 @@ gb_internal void map_reserve(PtrMap<K, V> *h, isize cap) { for (u32 i = 0; i < h->capacity; i++) { auto *entry = h->entries+i; if (entry->key && - entry->key != PtrMapConstant<K>::TOMBSTONE) { + entry->key != PtrMapConstant<K>::TOMBSTONE()) { map__insert(&new_h, entry->key, entry->value); } } @@ -271,7 +277,7 @@ template <typename K, typename V> gb_internal void map_remove(PtrMap<K, V> *h, K key) { MapIndex found_index = 0; if (map_try_get(h, key, &found_index)) { - h->entries[found_index].key = cast(K)PtrMapConstant<K>::TOMBSTONE; + h->entries[found_index].key = cast(K)PtrMapConstant<K>::TOMBSTONE(); h->count -= 1; } } @@ -381,7 +387,7 @@ struct PtrMapIterator { return *this; } PtrMapEntry<K, V> *entry = map->entries+index; - if (entry->key && entry->key != PtrMapConstant<K>::TOMBSTONE) { + if (entry->key && entry->key != PtrMapConstant<K>::TOMBSTONE()) { return *this; } } @@ -418,7 +424,7 @@ gb_internal PtrMapIterator<K, V> begin(PtrMap<K, V> &m) noexcept { MapIndex index = 0; while (index < m.capacity) { auto key = m.entries[index].key; - if (key && key != PtrMapConstant<K>::TOMBSTONE) { + if (key && key != PtrMapConstant<K>::TOMBSTONE()) { break; } index++; @@ -434,7 +440,7 @@ gb_internal PtrMapIterator<K, V> const begin(PtrMap<K, V> const &m) noexcept { MapIndex index = 0; while (index < m.capacity) { auto key = m.entries[index].key; - if (key && key != PtrMapConstant<K>::TOMBSTONE) { + if (key && key != PtrMapConstant<K>::TOMBSTONE()) { break; } index++; |