TypeInfo_Struct.destroy needed to check if the pointer is owned by the GC, and if so, have the GC run it's finalizers rather than calling the finalizer directly.