aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2025-10-27 11:29:13 +0000
committergingerBill <gingerBill@users.noreply.github.com>2025-10-27 11:29:13 +0000
commit8bdc322d6abe47206963a8739bf1c9582037f2f9 (patch)
tree6fa4151667972133c30da538e95d6677ed5c045b
parent288434ab30bb8038d9767151adc478cd82f2ef6b (diff)
Just use a method instead
-rw-r--r--src/ptr_map.cpp24
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++;