strong collision for very small numbers used as table keys

This commit is contained in:
Roberto Ierusalimschy 2007-06-19 17:23:29 -03:00
parent 6c042e17b1
commit dc59444cd1
1 changed files with 17 additions and 0 deletions

17
bugs
View File

@ -1475,6 +1475,23 @@ ldebug.c:
]],
}
Bug{
what = [[Very small numbers all collide in the hash function.
(This creates only performance problems; the behavoir is correct.)]],
report = [[, on ]],
since = [[Lua 5.0]],
example = [[ ]],
patch = [[
ltable.c:
87,88c87,88
< n += 1; /* normalize number (avoid -0) */
< lua_assert(sizeof(a) <= sizeof(n));
---
> if (luai_numeq(n, 0)) /* avoid problems with -0 */
> return gnode(t, 0);
]],
}
Bug{
what = [[ ]],
report = [[ , on ]],