浏览代码

strong collision for very small numbers used as table keys

Roberto Ierusalimschy 18 年之前
父节点
当前提交
dc59444cd1
共有 1 个文件被更改,包括 17 次插入0 次删除
  1. 17 0
      bugs

+ 17 - 0
bugs

@@ -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 ]],