lua: add a upstream patch
authorFrancois Perrad <fperrad@gmail.com>
Sat, 10 Jan 2015 08:30:53 +0000 (09:30 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sat, 10 Jan 2015 10:39:53 +0000 (11:39 +0100)
[Thomas: fix minor typo in commit title.]

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/lua/5.2.3/0012-fix-ephemeron-table.patch [new file with mode: 0644]

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 (file)
index 0000000..f231016
--- /dev/null
@@ -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 */