refactor: replace finalizer fiber with raw data pointer callback

Remove the dedicated finalizer fiber from WrenVM and change finalizer functions to accept a void* data pointer instead of a full WrenVM reference. This prevents user code from interacting with the VM during garbage collection, simplifying the GC path and eliminating the need for pre-allocated fiber infrastructure. Update the WrenForeignClassMethods struct, all built-in finalizers (file, test), and the binding/calling logic accordingly.
This commit is contained in:
Bob Nystrom
2015-12-28 16:06:29 +00:00
parent 6abebbe906
commit 1797c6c977
7 changed files with 31 additions and 37 deletions
+1 -1
View File
@@ -208,7 +208,7 @@ WrenForeignClassMethods bindBuiltInForeignClass(
if (clas == NULL) return methods;
methods.allocate = findMethod(clas, true, "<allocate>");
methods.finalize = findMethod(clas, true, "<finalize>");
methods.finalize = (WrenFinalizerFn)findMethod(clas, true, "<finalize>");
return methods;
}