|
@@ -0,0 +1,19 @@
|
|
|
+Ephemeron table can wrongly collect entry with strong key.
|
|
|
+
|
|
|
+Fetch from: http://www.lua.org/bugs.html#5.2.3-2
|
|
|
+
|
|
|
+Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
|
|
|
+
|
|
|
+Index: b/src/lgc.c
|
|
|
+===================================================================
|
|
|
+--- a/src/lgc.c
|
|
|
++++ b/src/lgc.c
|
|
|
+@@ -403,7 +403,7 @@
|
|
|
+ reallymarkobject(g, gcvalue(gval(n))); /* mark it now */
|
|
|
+ }
|
|
|
+ }
|
|
|
+- if (prop)
|
|
|
++ if (g->gcstate != GCSatomic || prop)
|
|
|
+ linktable(h, &g->ephemeron); /* have to propagate again */
|
|
|
+ else if (hasclears) /* does table have white keys? */
|
|
|
+ linktable(h, &g->allweak); /* may have to clean white keys */
|