6aa156fa1f
[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>
20 lines
629 B
Diff
20 lines
629 B
Diff
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 */
|