Show More
@@ -70,7 +70,7 static int xdl_optimize_ctxs(xdlclassifi | |||
|
70 | 70 | static int xdl_init_classifier(xdlclassifier_t *cf, int64_t size, int64_t flags) { |
|
71 | 71 | cf->flags = flags; |
|
72 | 72 | |
|
73 |
cf->hbits = xdl_hashbits( |
|
|
73 | cf->hbits = xdl_hashbits(size); | |
|
74 | 74 | cf->hsize = 1 << cf->hbits; |
|
75 | 75 | |
|
76 | 76 | if (xdl_cha_init(&cf->ncha, sizeof(xdlclass_t), size / 4 + 1) < 0) { |
@@ -262,7 +262,7 static int xdl_prepare_ctx(unsigned int | |||
|
262 | 262 | goto abort; |
|
263 | 263 | |
|
264 | 264 | { |
|
265 |
hbits = xdl_hashbits( |
|
|
265 | hbits = xdl_hashbits(narec); | |
|
266 | 266 | hsize = 1 << hbits; |
|
267 | 267 | if (!(rhash = (xrecord_t **) xdl_malloc(hsize * sizeof(xrecord_t *)))) |
|
268 | 268 | goto abort; |
@@ -141,9 +141,10 uint64_t xdl_hash_record(char const **da | |||
|
141 | 141 | return ha; |
|
142 | 142 | } |
|
143 | 143 | |
|
144 |
unsigned int xdl_hashbits( |
|
|
145 | unsigned int val = 1, bits = 0; | |
|
144 | unsigned int xdl_hashbits(int64_t size) { | |
|
145 | int64_t val = 1; | |
|
146 | unsigned int bits = 0; | |
|
146 | 147 | |
|
147 | for (; val < size && bits < CHAR_BIT * sizeof(unsigned int); val <<= 1, bits++); | |
|
148 | for (; val < size && bits < (int64_t) CHAR_BIT * sizeof(unsigned int); val <<= 1, bits++); | |
|
148 | 149 | return bits ? bits: 1; |
|
149 | 150 | } |
@@ -32,7 +32,7 void *xdl_cha_alloc(chastore_t *cha); | |||
|
32 | 32 | int64_t xdl_guess_lines(mmfile_t *mf, int64_t sample); |
|
33 | 33 | int xdl_recmatch(const char *l1, int64_t s1, const char *l2, int64_t s2); |
|
34 | 34 | uint64_t xdl_hash_record(char const **data, char const *top); |
|
35 |
unsigned int xdl_hashbits( |
|
|
35 | unsigned int xdl_hashbits(int64_t size); | |
|
36 | 36 | |
|
37 | 37 | |
|
38 | 38 |
General Comments 0
You need to be logged in to leave comments.
Login now