summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/lua/5.2.3/0012-fix-ephemeron-table.patch19
1 files changed, 19 insertions, 0 deletions
diff --git a/package/lua/5.2.3/0012-fix-ephemeron-table.patch b/package/lua/5.2.3/0012-fix-ephemeron-table.patch
new file mode 100644
index 0000000000..f231016922
--- /dev/null
+++ b/package/lua/5.2.3/0012-fix-ephemeron-table.patch
@@ -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 */
OpenPOWER on IntegriCloud