deduplicate hashmap size doubling function
This commit is contained in:
parent
1a583725be
commit
5d660cbf19
@ -1,4 +1,5 @@
|
|||||||
#include "../core.h"
|
#include "../core.h"
|
||||||
|
#define HASH_C 1
|
||||||
#include "hash.h"
|
#include "hash.h"
|
||||||
#include "time.h"
|
#include "time.h"
|
||||||
|
|
||||||
|
|||||||
@ -106,7 +106,11 @@ static inline void N(qins) (Map* m, u64 h1, HT h2 IFKEY(, KT k) IFVAL(, VT v)) {
|
|||||||
if (p++==mask) p = 0;
|
if (p++==mask) p = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
static NOINLINE void N(dbl) (Map** m) {
|
|
||||||
|
NOINLINE void N(dbl) (Map** m);
|
||||||
|
|
||||||
|
#if HASH_C
|
||||||
|
NOINLINE void N(dbl) (Map** m) {
|
||||||
Map* pm = *m;
|
Map* pm = *m;
|
||||||
u64 psz = pm->sz;
|
u64 psz = pm->sz;
|
||||||
Map* nm = N(m)(psz*2);
|
Map* nm = N(m)(psz*2);
|
||||||
@ -117,6 +121,7 @@ static NOINLINE void N(dbl) (Map** m) {
|
|||||||
mm_free((Value*)pm);
|
mm_free((Value*)pm);
|
||||||
*m = nm;
|
*m = nm;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static inline u64 N(mk) (Map** mp, KT k, bool* had) {
|
static inline u64 N(mk) (Map** mp, KT k, bool* had) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user