From 4e94c7c88c3480f1fe790b4f3954b801c4e04772 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Mon, 3 May 2021 19:24:48 +0200 Subject: [PATCH] Optimize C# method invoke in bindings via direct Mono invoke --- Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs b/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs index 1f8ab4249..1bde2a5c5 100644 --- a/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs +++ b/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Cpp.cs @@ -1002,7 +1002,7 @@ namespace Flax.Build.Bindings contents.Append($" params[{i}] = {paramValue};").AppendLine(); } - contents.AppendLine(" auto __result = method->Invoke(object->GetOrCreateManagedInstance(), params, &exception);"); + contents.AppendLine(" auto __result = mono_runtime_invoke(method->GetNative(), object->GetOrCreateManagedInstance(), params, &exception);"); contents.AppendLine("#else"); var thunkParams = string.Empty; @@ -1260,7 +1260,7 @@ namespace Flax.Build.Bindings contents.AppendLine(" MonoObject* instance = nullptr;"); else contents.AppendLine($" MonoObject* instance = (({classTypeNameNative}*)this)->GetManagedInstance();"); - contents.Append(" mmethod->Invoke(instance, params, &exception);").AppendLine(); + contents.Append(" mono_runtime_invoke(mmethod->GetNative(), instance, params, &exception);").AppendLine(); contents.Append(" if (exception)").AppendLine(); contents.Append(" DebugLog::LogException(exception);").AppendLine(); contents.Append(" }").AppendLine().AppendLine();