From d2a2882e2a04f47cd681518cf3dd8e65d7b598bd Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Sat, 25 Feb 2023 02:15:59 +0800 Subject: [PATCH] Update namedict.h --- src/namedict.h | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/namedict.h b/src/namedict.h index 7bcbec82..4d108296 100644 --- a/src/namedict.h +++ b/src/namedict.h @@ -82,24 +82,15 @@ namespace pkpy{ return reinterpret_cast(_keys + _capacity)[i]; } - inline void _alloc(uint16_t capacity){ - _keys = _dict_pool.alloc(capacity); - } - - inline static void _dealloc(StrName* head, uint16_t capacity){ - if(head == nullptr) return; - _dict_pool.dealloc(head, capacity); - } - NameDict(uint16_t capacity=2, float load_factor=0.67, uint16_t hash_seed=kHashSeeds[0]): _capacity(capacity), _size(0), _load_factor(load_factor), _hash_seed(hash_seed), _mask(capacity-1) { - _alloc(capacity); + _keys = _dict_pool.alloc(capacity); } NameDict(const NameDict& other) { memcpy(this, &other, sizeof(NameDict)); - _alloc(_capacity); + _keys = _dict_pool.alloc(_capacity); for(int i=0; i<_capacity; i++){ _keys[i] = other._keys[i]; value(i) = other.value(i); @@ -107,9 +98,9 @@ namespace pkpy{ } NameDict& operator=(const NameDict& other) { - _dealloc(_keys, _capacity); + _dict_pool.dealloc(_keys, _capacity); memcpy(this, &other, sizeof(NameDict)); - _alloc(_capacity); + _keys = _dict_pool.alloc(_capacity); for(int i=0; i<_capacity; i++){ _keys[i] = other._keys[i]; value(i) = other.value(i); @@ -168,7 +159,7 @@ namespace pkpy{ _capacity = find_next_capacity(_capacity * 2); _mask = _capacity - 1; } - _alloc(_capacity); + _keys = _dict_pool.alloc(_capacity); for(uint16_t i=0; i