From 1a1fadcc2fe0d44754c55e7fb4264a6c5cd5b5cd Mon Sep 17 00:00:00 2001 From: Ari Vuollet Date: Sat, 14 Jan 2023 17:50:25 +0200 Subject: [PATCH] Fix incorrect marshalling of TextureImportEntry fields --- Source/Editor/Content/Import/TextureImportEntry.cs | 4 ++-- Source/Engine/Engine/NativeInterop.cs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Editor/Content/Import/TextureImportEntry.cs b/Source/Editor/Content/Import/TextureImportEntry.cs index 157d82249..f03ef86ac 100644 --- a/Source/Editor/Content/Import/TextureImportEntry.cs +++ b/Source/Editor/Content/Import/TextureImportEntry.cs @@ -368,8 +368,8 @@ namespace FlaxEditor.Content.Import MaxSize = managed.MaxSize, TextureGroup = managed.TextureGroup, Size = managed.Size, - SpriteAreas = managed.SpriteAreas != IntPtr.Zero ? NativeInterop.GCHandleArrayToManagedArray((ManagedArray)GCHandle.FromIntPtr(managed.SpriteAreas).Target) : null, - SpriteNames = managed.SpriteNames != IntPtr.Zero ? NativeInterop.GCHandleArrayToManagedArray((ManagedArray)GCHandle.FromIntPtr(managed.SpriteNames).Target) : null, + SpriteAreas = managed.SpriteAreas != IntPtr.Zero ? ((ManagedArray)ManagedHandle.FromIntPtr(managed.SpriteAreas).Target).GetArray() : null, + SpriteNames = managed.SpriteNames != IntPtr.Zero ? NativeInterop.GCHandleArrayToManagedArray((ManagedArray)ManagedHandle.FromIntPtr(managed.SpriteNames).Target) : null, }; } internal static InternalOptionsNative ToNative(InternalOptions managed) diff --git a/Source/Engine/Engine/NativeInterop.cs b/Source/Engine/Engine/NativeInterop.cs index 9ee57e3cd..7afa25b79 100644 --- a/Source/Engine/Engine/NativeInterop.cs +++ b/Source/Engine/Engine/NativeInterop.cs @@ -1114,7 +1114,7 @@ namespace FlaxEngine NativeMemory.AlignedFree(ptr); } - internal static T[] GCHandleArrayToManagedArray(ManagedArray ptrArray) + internal static T[] GCHandleArrayToManagedArray(ManagedArray ptrArray) where T : class { Span span = ptrArray.GetSpan(); T[] managedArray = new T[ptrArray.Length];