Переглянути джерело

FFI: Treat cdata finalizer table as a GC root.

Thanks to Sergey Bronnikov. #1168
Mike Pall 1 рік тому
батько
коміт
dda1ac273a
1 змінених файлів з 3 додано та 0 видалено
  1. 3 0
      src/lj_gc.c

+ 3 - 0
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;
 }