Fix crash when using ref struct reflection in managed api

This commit is contained in:
Wojtek Figat
2025-01-21 15:39:21 +01:00
parent b247070840
commit 344d17714c

View File

@@ -340,6 +340,8 @@ namespace FlaxEngine.Interop
{
Type type = Unsafe.As<TypeHolder>(typeHandle.Target);
var fields = type.GetFields(BindingFlags.Static | BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
if (type.IsValueType && !type.IsEnum && !type.IsPrimitive && type.GetCustomAttribute<System.Runtime.CompilerServices.IsByRefLikeAttribute>() != null)
fields = Array.Empty<FieldInfo>(); // ref struct are not supported
NativeFieldDefinitions* arr = (NativeFieldDefinitions*)NativeAlloc(fields.Length, Unsafe.SizeOf<NativeFieldDefinitions>());
for (int i = 0; i < fields.Length; i++)