Open
Description
When attempting to deserialise a class containing a List of structs deriving from an interface (all tagged according to the MemoryPack documentation, i.e. with [MemoryPackUnion(tag, type)]
), when compiling under NativeAOT, the following crash occurs:
Process terminated. Failed to create generic virtual method implementation
Declaring type: MemoryPack.Formatters.MemoryPackableFormatter`1<GameCore.Scenes.Scene>
Method name: Serialize
Instantiation:
Argument 00000000: MemoryPack.Internal.ReusableLinkedArrayBufferWriter
at System.RuntimeExceptionHelpers.FailFast(String, Exception, String, RhFailFastReason, IntPtr, IntPtr) + 0x249
at Internal.Runtime.TypeLoader.TypeLoaderEnvironment.ResolveGenericVirtualMethodTarget(RuntimeTypeHandle, RuntimeMethodHandle) + 0x256
at System.Runtime.TypeLoaderExports.<>c.<GVMLookupForSlotSlow>b__8_0(IntPtr, IntPtr, Object, IntPtr&) + 0x3e
at System.Runtime.TypeLoaderExports.CacheMiss(IntPtr, IntPtr, RuntimeObjectFactory, Object) + 0x3c
at System.Runtime.TypeLoaderExports.GVMLookupForSlotSlow(Object, RuntimeMethodHandle) + 0x68
at System.Runtime.TypeLoaderExports.GVMLookupForSlot(Object, RuntimeMethodHandle) + 0x91
at MemoryPack.MemoryPackWriter`1.WriteValue[T](T&) + 0x3d
at MemoryPack.MemoryPackSerializer.Serialize[T](T&, MemoryPackSerializerOptions) + 0x342
at Game.Main(String[] args) + 0xaa
This is after ensuring both a Serialize and Deserialize method are available (per #189 , in this case just with a dirty workaround by making a useless call to Serialize).
Metadata
Metadata
Assignees
Labels
No labels