From 5e405d9b85c812090a1d06ca3cb5b341ed321e59 Mon Sep 17 00:00:00 2001 From: Joao Matos Date: Tue, 3 Sep 2024 16:26:16 +0100 Subject: [PATCH] Update QuickJS runtime and support code to work with latest upstream. --- src/Generator/Generators/QuickJS/QuickJSSources.cs | 2 +- .../Generators/QuickJS/Runtime/CppSharp_QuickJS.h | 9 ++++++--- src/Generator/Generators/QuickJS/Runtime/Signal.cpp | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Generator/Generators/QuickJS/QuickJSSources.cs b/src/Generator/Generators/QuickJS/QuickJSSources.cs index 4ec2cf63..036ff7b7 100644 --- a/src/Generator/Generators/QuickJS/QuickJSSources.cs +++ b/src/Generator/Generators/QuickJS/QuickJSSources.cs @@ -598,7 +598,7 @@ namespace CppSharp.Generators.Cpp WriteLine("if (phase == 0)"); WriteOpenBraceAndIndent(); { - WriteLine($"JS_NewClassID(&{classId});"); + WriteLine($"JS_NewClassID(JS_GetRuntime(ctx), &{classId});"); NewLine(); WriteLine($"JS_NewClass(JS_GetRuntime(ctx), {classId}, &{classDef});"); diff --git a/src/Generator/Generators/QuickJS/Runtime/CppSharp_QuickJS.h b/src/Generator/Generators/QuickJS/Runtime/CppSharp_QuickJS.h index 0860be71..fb897ae8 100644 --- a/src/Generator/Generators/QuickJS/Runtime/CppSharp_QuickJS.h +++ b/src/Generator/Generators/QuickJS/Runtime/CppSharp_QuickJS.h @@ -174,9 +174,12 @@ static JSValue JS_Interop_CleanupObject(JSValue obj, JS_Interop_InstanceKind kin switch (kind) { case JS_INTEROP_INSTANCE_SIGNAL_CONTEXT: - JS_Interop_ClassData* data = (JS_Interop_ClassData*) JS_GetOpaque(obj, 0); - JS_Interop_FreeEventMap(data->ctx, &data->events); - js_free(data->ctx, data); + JS_Interop_ClassData* data = (JS_Interop_ClassData*) JS_GetOpaque(obj, JS_GetClassID(obj)); + if (data) + { + JS_Interop_FreeEventMap(data->ctx, &data->events); + js_free(data->ctx, data); + } } return JS_UNDEFINED; diff --git a/src/Generator/Generators/QuickJS/Runtime/Signal.cpp b/src/Generator/Generators/QuickJS/Runtime/Signal.cpp index 79059df5..96be089b 100644 --- a/src/Generator/Generators/QuickJS/Runtime/Signal.cpp +++ b/src/Generator/Generators/QuickJS/Runtime/Signal.cpp @@ -179,7 +179,7 @@ static void register_class__Signal(JSContext *ctx, JSModuleDef *m, bool set, int if (phase == 0) { - JS_NewClassID(&classId__Signal); + JS_NewClassID(JS_GetRuntime(ctx), &classId__Signal); JS_NewClass(JS_GetRuntime(ctx), classId__Signal, &classDef__Signal);