Преглед изворни кода

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