From dda1ac273ad946387088d91039a8ae319359903d Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Sun, 10 Mar 2024 17:16:41 +0100 Subject: [PATCH] FFI: Treat cdata finalizer table as a GC root. Thanks to Sergey Bronnikov. #1168 --- src/lj_gc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lj_gc.c b/src/lj_gc.c index 06484f6f..9c0d6797 100644 --- a/src/lj_gc.c +++ b/src/lj_gc.c @@ -93,6 +93,9 @@ static void gc_mark_start(global_State *g) gc_markobj(g, tabref(mainthread(g)->env)); gc_marktv(g, &g->registrytv); gc_mark_gcroot(g); +#if LJ_HASFFI + if (ctype_ctsG(g)) gc_markobj(g, ctype_ctsG(g)->finalizer); +#endif g->gc.state = GCSpropagate; }