Use method overloads that support trimming. Mark some types to be trimming friendly (#4083)

* Use method overloads that support trimming. Mark some types to be trimming friendly

* Use generic version of marshalling method
This commit is contained in:
Andrey Sukharev 2022-12-12 17:10:05 +03:00 committed by GitHub
parent ba5c0cf5d8
commit edf7e628ca
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 26 additions and 22 deletions

View file

@ -1,5 +1,6 @@
using Ryujinx.Tests.Unicorn.Native.Const;
using System;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
@ -43,9 +44,9 @@ namespace Ryujinx.Tests.Unicorn.Native
}
}
public static void MarshalArrayOf<T>(IntPtr input, int length, out T[] output)
public static void MarshalArrayOf<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.NonPublicConstructors)] T>(IntPtr input, int length, out T[] output)
{
int size = Marshal.SizeOf(typeof(T));
int size = Marshal.SizeOf<T>();
output = new T[length];