From fd23a61846bb20a97366bac2fa0bf73ba1d9407a Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Wed, 29 Mar 2023 10:32:30 +0200 Subject: [PATCH] Fix `ManagedDictionary` error on null object --- Source/Engine/Scripting/Internal/ManagedDictionary.h | 4 +++- Source/Engine/Scripting/Scripting.cs | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Source/Engine/Scripting/Internal/ManagedDictionary.h b/Source/Engine/Scripting/Internal/ManagedDictionary.h index f2e638115..c42eb1d27 100644 --- a/Source/Engine/Scripting/Internal/ManagedDictionary.h +++ b/Source/Engine/Scripting/Internal/ManagedDictionary.h @@ -53,7 +53,9 @@ struct FLAXENGINE_API ManagedDictionary Dictionary result; const ManagedDictionary wrapper(managed); MArray* managedKeys = wrapper.GetKeys(); - int32 length = managedKeys ? MCore::Array::GetLength(managedKeys) : 0; + if (managedKeys == nullptr) + return result; + int32 length = MCore::Array::GetLength(managedKeys); Array keys; keys.Resize(length); result.EnsureCapacity(length); diff --git a/Source/Engine/Scripting/Scripting.cs b/Source/Engine/Scripting/Scripting.cs index f4a01cadb..204401867 100644 --- a/Source/Engine/Scripting/Scripting.cs +++ b/Source/Engine/Scripting/Scripting.cs @@ -205,6 +205,8 @@ namespace FlaxEngine internal static object[] GetDictionaryKeys(IDictionary dictionary) { + if (dictionary == null) + return null; var keys = dictionary.Keys; var result = new object[keys.Count]; keys.CopyTo(result, 0);