Fix loading shared managed assemblies multiple times

This commit is contained in:
2023-09-29 22:06:55 +03:00
parent fd3f10864b
commit 18310c9264

View File

@@ -104,7 +104,7 @@ namespace
MMethod* _method_LateFixedUpdate = nullptr; MMethod* _method_LateFixedUpdate = nullptr;
MMethod* _method_Draw = nullptr; MMethod* _method_Draw = nullptr;
MMethod* _method_Exit = nullptr; MMethod* _method_Exit = nullptr;
Array<BinaryModule*, InlinedAllocation<64>> _nonNativeModules; Dictionary<StringAnsi, BinaryModule*, InlinedAllocation<64>> _nonNativeModules;
#if USE_EDITOR #if USE_EDITOR
bool LastBinariesLoadTriggeredCompilation = false; bool LastBinariesLoadTriggeredCompilation = false;
#endif #endif
@@ -334,6 +334,8 @@ bool Scripting::LoadBinaryModules(const String& path, const String& projectFolde
// Check if that module has been already registered // Check if that module has been already registered
BinaryModule* module = BinaryModule::GetModule(nameAnsi); BinaryModule* module = BinaryModule::GetModule(nameAnsi);
if (!module)
_nonNativeModules.TryGet(nameAnsi, module);
if (!module) if (!module)
{ {
// C++ // C++
@@ -403,7 +405,7 @@ bool Scripting::LoadBinaryModules(const String& path, const String& projectFolde
{ {
// Create module if native library is not used // Create module if native library is not used
module = New<ManagedBinaryModule>(nameAnsi); module = New<ManagedBinaryModule>(nameAnsi);
_nonNativeModules.Add(module); _nonNativeModules.Add(nameAnsi, module);
} }
} }