From 367013f589b2ae87a0b83410bc4ea770e1263157 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 12 Dec 2017 23:39:20 +0000 Subject: Change Map and PtrSet grow rate --- src/ptr_set.cpp | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'src/ptr_set.cpp') diff --git a/src/ptr_set.cpp b/src/ptr_set.cpp index d16002b3e..317b8e68c 100644 --- a/src/ptr_set.cpp +++ b/src/ptr_set.cpp @@ -17,14 +17,14 @@ struct PtrSet { Array> entries; }; -template void ptr_set_init (PtrSet *s, gbAllocator a, isize capacity = 16); -template void ptr_set_destroy (PtrSet *s); -template T ptr_set_add (PtrSet *s, T ptr); -template bool ptr_set_exists (PtrSet *s, T ptr); -template void ptr_set_remove (PtrSet *s, T ptr); -template void ptr_set_clear (PtrSet *s); -template void ptr_set_grow (PtrSet *s); -template void ptr_set_rehash (PtrSet *s, isize new_count); +template void ptr_set_init (PtrSet *s, gbAllocator a, isize capacity = 16); +template void ptr_set_destroy(PtrSet *s); +template T ptr_set_add (PtrSet *s, T ptr); +template bool ptr_set_exists (PtrSet *s, T ptr); +template void ptr_set_remove (PtrSet *s, T ptr); +template void ptr_set_clear (PtrSet *s); +template void ptr_set_grow (PtrSet *s); +template void ptr_set_rehash (PtrSet *s, isize new_count); template @@ -88,9 +88,12 @@ gb_internal b32 ptr_set__full(PtrSet *s) { return 0.75f * s->hashes.count <= s->entries.count; } +#define PTR_ARRAY_GROW_FORMULA(x) (4*(x) + 7) +GB_STATIC_ASSERT(PTR_ARRAY_GROW_FORMULA(0) > 0); + template gb_inline void ptr_set_grow(PtrSet *s) { - isize new_count = ARRAY_GROW_FORMULA(s->entries.count); + isize new_count = PTR_ARRAY_GROW_FORMULA(s->entries.count); ptr_set_rehash(s, new_count); } -- cgit v1.2.3