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:
+1
-1
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user