Skip to content

Commit 9b48209

Browse files
committed
修改写法,让jsEnv.Disposed前释放wrapRender,否则quickjs会触发Assertion `list_empty(&rt->gc_obj_list)'
1 parent 02053a4 commit 9b48209

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

unity/Assets/core/upm/Editor/Src/Generator/IL2Cpp/FileExporter.cs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -618,17 +618,23 @@ where method.IsDefined(typeof(ExtensionAttribute), false)
618618

619619
using (var jsEnv = (loader == null ? new Puerts.JsEnv() : new Puerts.JsEnv(loader)))
620620
{
621-
var wrapRender = jsEnv.ExecuteModule<Func<List<KeyValuePair<Type, List<Type>>>, string>>(
622-
"puerts/templates/extension_methods_gen.tpl.mjs", "default");
623-
string fileContent = wrapRender(extendedType2extensionType);
624621
var filePath = outDir + "ExtensionMethodInfos_Gen.cs";
625622
using (StreamWriter textWriter = new StreamWriter(filePath, false, Encoding.UTF8))
626623
{
627-
textWriter.Write(fileContent);
628-
textWriter.Flush();
624+
renderExtensionMethods(jsEnv, extendedType2extensionType, textWriter);
629625
}
630626
}
631627
}
628+
629+
static void renderExtensionMethods(Puerts.JsEnv jsEnv, List<KeyValuePair<Type, List<Type>>> extendedType2extensionType, StreamWriter textWriter)
630+
{
631+
var wrapRender = jsEnv.ExecuteModule<Func<List<KeyValuePair<Type, List<Type>>>, string>>(
632+
"puerts/templates/extension_methods_gen.tpl.mjs", "default");
633+
string fileContent = wrapRender(extendedType2extensionType);
634+
635+
textWriter.Write(fileContent);
636+
textWriter.Flush();
637+
}
632638
#if !PUERTS_GENERAL
633639
public static void GenLinkXml(string outDir)
634640
{

0 commit comments

Comments
 (0)