From 18310c92647827d3ce4f6a01dc062ebb349b90f7 Mon Sep 17 00:00:00 2001 From: Ari Vuollet Date: Fri, 29 Sep 2023 22:06:55 +0300 Subject: [PATCH] Fix loading shared managed assemblies multiple times --- Source/Engine/Scripting/Scripting.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Source/Engine/Scripting/Scripting.cpp b/Source/Engine/Scripting/Scripting.cpp index 6210063b8..28c9a4ed1 100644 --- a/Source/Engine/Scripting/Scripting.cpp +++ b/Source/Engine/Scripting/Scripting.cpp @@ -104,7 +104,7 @@ namespace MMethod* _method_LateFixedUpdate = nullptr; MMethod* _method_Draw = nullptr; MMethod* _method_Exit = nullptr; - Array> _nonNativeModules; + Dictionary> _nonNativeModules; #if USE_EDITOR bool LastBinariesLoadTriggeredCompilation = false; #endif @@ -334,6 +334,8 @@ bool Scripting::LoadBinaryModules(const String& path, const String& projectFolde // Check if that module has been already registered BinaryModule* module = BinaryModule::GetModule(nameAnsi); + if (!module) + _nonNativeModules.TryGet(nameAnsi, module); if (!module) { // C++ @@ -403,7 +405,7 @@ bool Scripting::LoadBinaryModules(const String& path, const String& projectFolde { // Create module if native library is not used module = New(nameAnsi); - _nonNativeModules.Add(module); + _nonNativeModules.Add(nameAnsi, module); } }