macro option for an intentionally-bad hash function for testing purposes
This commit is contained in:
parent
a5ce138385
commit
6573232694
@ -18,7 +18,11 @@ NOINLINE u64 bqn_hashObj(B x, const u64 secret[4]) { // TODO manual separation o
|
|||||||
void* data;
|
void* data;
|
||||||
u64 bytes;
|
u64 bytes;
|
||||||
switch(xe) { default: UD;
|
switch(xe) { default: UD;
|
||||||
case el_bit: bcl(x,xia); bytes = (xia+7)>>3; data = bitarr_ptr(x); break;
|
case el_bit:
|
||||||
|
#if TEST_BAD_HASH
|
||||||
|
if (xia>=64) return *(u64*)bitarr_ptr(x);
|
||||||
|
#endif
|
||||||
|
bcl(x,xia); bytes = (xia+7)>>3; data = bitarr_ptr(x); break;
|
||||||
case el_i8: case el_c8: bytes = xia*1; data = tyany_ptr(x); break;
|
case el_i8: case el_c8: bytes = xia*1; data = tyany_ptr(x); break;
|
||||||
case el_i16: case el_c16: bytes = xia*2; data = tyany_ptr(x); break;
|
case el_i16: case el_c16: bytes = xia*2; data = tyany_ptr(x); break;
|
||||||
case el_i32: case el_c32: bytes = xia*4; data = tyany_ptr(x); break;
|
case el_i32: case el_c32: bytes = xia*4; data = tyany_ptr(x); break;
|
||||||
|
|||||||
@ -18,6 +18,9 @@ u64 bqn_hashObj(B x, const u64 secret[4]);
|
|||||||
static u64 bqn_hash(B x, const u64 secret[4]) { // doesn't consume
|
static u64 bqn_hash(B x, const u64 secret[4]) { // doesn't consume
|
||||||
u64 h;
|
u64 h;
|
||||||
if (LIKELY(x.f==x.f)) {
|
if (LIKELY(x.f==x.f)) {
|
||||||
|
#if TEST_BAD_HASH
|
||||||
|
return (u64)x.f;
|
||||||
|
#endif
|
||||||
h = m_f64(x.f+0).u;
|
h = m_f64(x.f+0).u;
|
||||||
} else if (isVal(x)) {
|
} else if (isVal(x)) {
|
||||||
return bqn_hashObj(x, secret);
|
return bqn_hashObj(x, secret);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user