diff --git a/core/src/avm2/object/array_object.rs b/core/src/avm2/object/array_object.rs index a5c7032126ca..04e36963d47c 100644 --- a/core/src/avm2/object/array_object.rs +++ b/core/src/avm2/object/array_object.rs @@ -49,6 +49,7 @@ impl fmt::Debug for ArrayObject<'_> { #[derive(Collect, Clone)] #[collect(no_drop)] +#[repr(C)] pub struct ArrayObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/bitmapdata_object.rs b/core/src/avm2/object/bitmapdata_object.rs index b16b014e4135..17ea369c2e89 100644 --- a/core/src/avm2/object/bitmapdata_object.rs +++ b/core/src/avm2/object/bitmapdata_object.rs @@ -54,6 +54,7 @@ impl fmt::Debug for BitmapDataObject<'_> { #[derive(Clone, Collect)] #[collect(no_drop)] +#[repr(C)] pub struct BitmapDataObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/bytearray_object.rs b/core/src/avm2/object/bytearray_object.rs index c35553682654..ab4f21d49ac9 100644 --- a/core/src/avm2/object/bytearray_object.rs +++ b/core/src/avm2/object/bytearray_object.rs @@ -69,6 +69,7 @@ impl fmt::Debug for ByteArrayObject<'_> { #[derive(Clone, Collect)] #[collect(no_drop)] +#[repr(C)] pub struct ByteArrayObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/class_object.rs b/core/src/avm2/object/class_object.rs index e7d0fd66a10f..4888f8fcbe5f 100644 --- a/core/src/avm2/object/class_object.rs +++ b/core/src/avm2/object/class_object.rs @@ -38,6 +38,7 @@ pub struct ClassObjectWeak<'gc>(pub GcWeak<'gc, ClassObjectData<'gc>>); #[derive(Collect, Clone)] #[collect(no_drop)] +#[repr(C)] pub struct ClassObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/context3d_object.rs b/core/src/avm2/object/context3d_object.rs index ea1d7e058adb..0b199dc29a2c 100644 --- a/core/src/avm2/object/context3d_object.rs +++ b/core/src/avm2/object/context3d_object.rs @@ -482,6 +482,7 @@ impl<'gc> Context3DObject<'gc> { #[derive(Collect)] #[collect(no_drop)] +#[repr(C)] pub struct Context3DData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/date_object.rs b/core/src/avm2/object/date_object.rs index 35d9ee54ef9d..34435bd7a4c4 100644 --- a/core/src/avm2/object/date_object.rs +++ b/core/src/avm2/object/date_object.rs @@ -74,6 +74,7 @@ impl<'gc> DateObject<'gc> { #[derive(Clone, Collect)] #[collect(no_drop)] +#[repr(C)] pub struct DateObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/dictionary_object.rs b/core/src/avm2/object/dictionary_object.rs index 313e86d786cd..51daab741255 100644 --- a/core/src/avm2/object/dictionary_object.rs +++ b/core/src/avm2/object/dictionary_object.rs @@ -49,6 +49,7 @@ impl fmt::Debug for DictionaryObject<'_> { #[derive(Clone, Collect)] #[collect(no_drop)] +#[repr(C)] pub struct DictionaryObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/dispatch_object.rs b/core/src/avm2/object/dispatch_object.rs index fa1e23e76a46..097c5a7719db 100644 --- a/core/src/avm2/object/dispatch_object.rs +++ b/core/src/avm2/object/dispatch_object.rs @@ -54,6 +54,7 @@ impl fmt::Debug for DispatchObject<'_> { #[derive(Clone, Collect)] #[collect(no_drop)] +#[repr(C)] pub struct DispatchObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/domain_object.rs b/core/src/avm2/object/domain_object.rs index ce8a73e36b21..426e070bfeaa 100644 --- a/core/src/avm2/object/domain_object.rs +++ b/core/src/avm2/object/domain_object.rs @@ -50,6 +50,7 @@ impl fmt::Debug for DomainObject<'_> { #[derive(Clone, Collect)] #[collect(no_drop)] +#[repr(C)] pub struct DomainObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/error_object.rs b/core/src/avm2/object/error_object.rs index c8d9ddecb27a..7afd7bfe83f9 100644 --- a/core/src/avm2/object/error_object.rs +++ b/core/src/avm2/object/error_object.rs @@ -51,6 +51,7 @@ impl fmt::Debug for ErrorObject<'_> { #[derive(Clone, Collect)] #[collect(no_drop)] +#[repr(C)] pub struct ErrorObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/event_object.rs b/core/src/avm2/object/event_object.rs index 6a44d5789578..447996736e9d 100644 --- a/core/src/avm2/object/event_object.rs +++ b/core/src/avm2/object/event_object.rs @@ -43,6 +43,7 @@ pub struct EventObjectWeak<'gc>(pub GcWeak<'gc, EventObjectData<'gc>>); #[derive(Clone, Collect)] #[collect(no_drop)] +#[repr(C)] pub struct EventObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/file_reference_object.rs b/core/src/avm2/object/file_reference_object.rs index dc6b0eca72b5..f09bba159b66 100644 --- a/core/src/avm2/object/file_reference_object.rs +++ b/core/src/avm2/object/file_reference_object.rs @@ -83,6 +83,7 @@ pub enum FileReference { #[derive(Collect)] #[collect(no_drop)] +#[repr(C)] pub struct FileReferenceObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/font_object.rs b/core/src/avm2/object/font_object.rs index 2bf01a3ed3be..c58d41793a13 100644 --- a/core/src/avm2/object/font_object.rs +++ b/core/src/avm2/object/font_object.rs @@ -88,6 +88,7 @@ impl<'gc> TObject<'gc> for FontObject<'gc> { #[derive(Collect)] #[collect(no_drop)] +#[repr(C)] pub struct FontObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/function_object.rs b/core/src/avm2/object/function_object.rs index dc3bd5e72fd3..19d1dfc4e5e9 100644 --- a/core/src/avm2/object/function_object.rs +++ b/core/src/avm2/object/function_object.rs @@ -80,6 +80,7 @@ impl fmt::Debug for FunctionObject<'_> { #[derive(Collect, Clone)] #[collect(no_drop)] +#[repr(C)] pub struct FunctionObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/index_buffer_3d_object.rs b/core/src/avm2/object/index_buffer_3d_object.rs index 96a306b3a671..e280de170d36 100644 --- a/core/src/avm2/object/index_buffer_3d_object.rs +++ b/core/src/avm2/object/index_buffer_3d_object.rs @@ -65,6 +65,7 @@ impl<'gc> IndexBuffer3DObject<'gc> { #[derive(Collect)] #[collect(no_drop)] +#[repr(C)] pub struct IndexBuffer3DObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/loaderinfo_object.rs b/core/src/avm2/object/loaderinfo_object.rs index 03b263ef0a5c..9cfe91088af5 100644 --- a/core/src/avm2/object/loaderinfo_object.rs +++ b/core/src/avm2/object/loaderinfo_object.rs @@ -90,6 +90,7 @@ impl fmt::Debug for LoaderInfoObject<'_> { #[derive(Collect, Clone)] #[collect(no_drop)] +#[repr(C)] pub struct LoaderInfoObjectData<'gc> { /// All normal script data. base: RefLock>, diff --git a/core/src/avm2/object/local_connection_object.rs b/core/src/avm2/object/local_connection_object.rs index 02565a44263f..26739d9c6cbe 100644 --- a/core/src/avm2/object/local_connection_object.rs +++ b/core/src/avm2/object/local_connection_object.rs @@ -48,6 +48,7 @@ impl fmt::Debug for LocalConnectionObject<'_> { #[derive(Collect)] #[collect(no_drop)] +#[repr(C)] pub struct LocalConnectionObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/namespace_object.rs b/core/src/avm2/object/namespace_object.rs index 6dadc6c1e840..af01b6a454d2 100644 --- a/core/src/avm2/object/namespace_object.rs +++ b/core/src/avm2/object/namespace_object.rs @@ -57,6 +57,7 @@ impl fmt::Debug for NamespaceObject<'_> { #[derive(Collect, Clone)] #[collect(no_drop)] +#[repr(C)] pub struct NamespaceObjectData<'gc> { /// All normal script data. base: RefLock>, diff --git a/core/src/avm2/object/net_connection_object.rs b/core/src/avm2/object/net_connection_object.rs index 3593ef403e85..2bb82dba21fa 100644 --- a/core/src/avm2/object/net_connection_object.rs +++ b/core/src/avm2/object/net_connection_object.rs @@ -40,6 +40,7 @@ pub struct NetConnectionObjectWeak<'gc>(pub GcWeak<'gc, NetConnectionObjectData< #[derive(Collect)] #[collect(no_drop)] +#[repr(C)] pub struct NetConnectionObjectData<'gc> { base: RefLock>, #[collect(require_static)] diff --git a/core/src/avm2/object/netstream_object.rs b/core/src/avm2/object/netstream_object.rs index be729a00aeb2..4853659fc4ec 100644 --- a/core/src/avm2/object/netstream_object.rs +++ b/core/src/avm2/object/netstream_object.rs @@ -41,6 +41,7 @@ pub struct NetStreamObjectWeak<'gc>(pub GcWeak<'gc, NetStreamObjectData<'gc>>); #[derive(Clone, Collect)] #[collect(no_drop)] +#[repr(C)] pub struct NetStreamObjectData<'gc> { base: RefLock>, ns: NetStream<'gc>, diff --git a/core/src/avm2/object/primitive_object.rs b/core/src/avm2/object/primitive_object.rs index a54b58052d0d..d86421569271 100644 --- a/core/src/avm2/object/primitive_object.rs +++ b/core/src/avm2/object/primitive_object.rs @@ -48,6 +48,7 @@ impl fmt::Debug for PrimitiveObject<'_> { #[derive(Collect, Clone)] #[collect(no_drop)] +#[repr(C)] pub struct PrimitiveObjectData<'gc> { /// All normal script data. base: RefLock>, diff --git a/core/src/avm2/object/program_3d_object.rs b/core/src/avm2/object/program_3d_object.rs index 243272e326b5..d151aed73446 100644 --- a/core/src/avm2/object/program_3d_object.rs +++ b/core/src/avm2/object/program_3d_object.rs @@ -57,6 +57,7 @@ impl<'gc> Program3DObject<'gc> { #[derive(Collect)] #[collect(no_drop)] +#[repr(C)] pub struct Program3DObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/proxy_object.rs b/core/src/avm2/object/proxy_object.rs index ff31189180c6..62559b71032c 100644 --- a/core/src/avm2/object/proxy_object.rs +++ b/core/src/avm2/object/proxy_object.rs @@ -44,6 +44,7 @@ impl fmt::Debug for ProxyObject<'_> { #[derive(Clone, Collect)] #[collect(no_drop)] +#[repr(C)] pub struct ProxyObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/qname_object.rs b/core/src/avm2/object/qname_object.rs index b9737c5d0f01..0cffc2ef0e10 100644 --- a/core/src/avm2/object/qname_object.rs +++ b/core/src/avm2/object/qname_object.rs @@ -49,6 +49,7 @@ impl fmt::Debug for QNameObject<'_> { #[derive(Collect, Clone)] #[collect(no_drop)] +#[repr(C)] pub struct QNameObjectData<'gc> { /// All normal script data. base: RefLock>, diff --git a/core/src/avm2/object/regexp_object.rs b/core/src/avm2/object/regexp_object.rs index 6efb034b4b88..03708d992e84 100644 --- a/core/src/avm2/object/regexp_object.rs +++ b/core/src/avm2/object/regexp_object.rs @@ -47,6 +47,7 @@ impl fmt::Debug for RegExpObject<'_> { #[derive(Clone, Collect)] #[collect(no_drop)] +#[repr(C)] pub struct RegExpObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/responder_object.rs b/core/src/avm2/object/responder_object.rs index fcc61980ba79..e32bc78d4682 100644 --- a/core/src/avm2/object/responder_object.rs +++ b/core/src/avm2/object/responder_object.rs @@ -104,6 +104,7 @@ impl<'gc> ResponderObject<'gc> { #[derive(Collect)] #[collect(no_drop)] +#[repr(C)] pub struct ResponderObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/shader_data_object.rs b/core/src/avm2/object/shader_data_object.rs index ff0aa1b12d60..c1c8238ce6e1 100644 --- a/core/src/avm2/object/shader_data_object.rs +++ b/core/src/avm2/object/shader_data_object.rs @@ -57,6 +57,7 @@ impl<'gc> ShaderDataObject<'gc> { #[derive(Collect)] #[collect(no_drop)] +#[repr(C)] pub struct ShaderDataObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/socket_object.rs b/core/src/avm2/object/socket_object.rs index 3daa561a476b..b57986826203 100644 --- a/core/src/avm2/object/socket_object.rs +++ b/core/src/avm2/object/socket_object.rs @@ -199,6 +199,7 @@ impl_read!(read_float 4; f32, read_double 8; f64, read_int 4; i32, read_unsigned #[derive(Collect)] #[collect(no_drop)] +#[repr(C)] pub struct SocketObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/sound_object.rs b/core/src/avm2/object/sound_object.rs index ca53557759fc..437d0014e3ac 100644 --- a/core/src/avm2/object/sound_object.rs +++ b/core/src/avm2/object/sound_object.rs @@ -62,6 +62,7 @@ impl fmt::Debug for SoundObject<'_> { #[derive(Collect)] #[collect(no_drop)] +#[repr(C)] pub struct SoundObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/soundchannel_object.rs b/core/src/avm2/object/soundchannel_object.rs index 0f4e1b64c019..a558c144a0f8 100644 --- a/core/src/avm2/object/soundchannel_object.rs +++ b/core/src/avm2/object/soundchannel_object.rs @@ -52,6 +52,7 @@ impl fmt::Debug for SoundChannelObject<'_> { #[derive(Collect)] #[collect(no_drop)] +#[repr(C)] pub struct SoundChannelObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/stage3d_object.rs b/core/src/avm2/object/stage3d_object.rs index 013c67940c09..8f5f0ae4c7fe 100644 --- a/core/src/avm2/object/stage3d_object.rs +++ b/core/src/avm2/object/stage3d_object.rs @@ -63,6 +63,7 @@ impl<'gc> Stage3DObject<'gc> { #[derive(Clone, Collect)] #[collect(no_drop)] +#[repr(C)] pub struct Stage3DObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/stage_object.rs b/core/src/avm2/object/stage_object.rs index 5273eef7ece0..70de1801ea76 100644 --- a/core/src/avm2/object/stage_object.rs +++ b/core/src/avm2/object/stage_object.rs @@ -21,6 +21,7 @@ pub struct StageObjectWeak<'gc>(pub GcWeak<'gc, StageObjectData<'gc>>); #[derive(Clone, Collect)] #[collect(no_drop)] +#[repr(C)] pub struct StageObjectData<'gc> { /// The base data common to all AVM2 objects. base: RefLock>, diff --git a/core/src/avm2/object/textformat_object.rs b/core/src/avm2/object/textformat_object.rs index f13b10f11a39..7d54d25febc0 100644 --- a/core/src/avm2/object/textformat_object.rs +++ b/core/src/avm2/object/textformat_object.rs @@ -48,6 +48,7 @@ impl fmt::Debug for TextFormatObject<'_> { #[derive(Clone, Collect)] #[collect(no_drop)] +#[repr(C)] pub struct TextFormatObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/texture_object.rs b/core/src/avm2/object/texture_object.rs index 8a95f9d9dc79..7aa3e3671b8a 100644 --- a/core/src/avm2/object/texture_object.rs +++ b/core/src/avm2/object/texture_object.rs @@ -62,6 +62,7 @@ impl<'gc> TextureObject<'gc> { #[derive(Collect)] #[collect(no_drop)] +#[repr(C)] pub struct TextureObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/vector_object.rs b/core/src/avm2/object/vector_object.rs index 4986a2506b97..5147fb6e8161 100644 --- a/core/src/avm2/object/vector_object.rs +++ b/core/src/avm2/object/vector_object.rs @@ -53,6 +53,7 @@ impl fmt::Debug for VectorObject<'_> { #[derive(Collect, Clone)] #[collect(no_drop)] +#[repr(C)] pub struct VectorObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/vertex_buffer_3d_object.rs b/core/src/avm2/object/vertex_buffer_3d_object.rs index 3166e1b4c239..e37cf0c85255 100644 --- a/core/src/avm2/object/vertex_buffer_3d_object.rs +++ b/core/src/avm2/object/vertex_buffer_3d_object.rs @@ -63,6 +63,7 @@ impl<'gc> VertexBuffer3DObject<'gc> { #[derive(Collect)] #[collect(no_drop)] +#[repr(C)] pub struct VertexBuffer3DObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/xml_list_object.rs b/core/src/avm2/object/xml_list_object.rs index 307cf351b34a..f7cf3e887d9b 100644 --- a/core/src/avm2/object/xml_list_object.rs +++ b/core/src/avm2/object/xml_list_object.rs @@ -345,6 +345,7 @@ impl<'gc> XmlListObject<'gc> { #[derive(Clone, Collect)] #[collect(no_drop)] +#[repr(C)] pub struct XmlListObjectData<'gc> { /// Base script object base: RefLock>, diff --git a/core/src/avm2/object/xml_object.rs b/core/src/avm2/object/xml_object.rs index 93b2ad539df1..a9f4bc21ab66 100644 --- a/core/src/avm2/object/xml_object.rs +++ b/core/src/avm2/object/xml_object.rs @@ -58,6 +58,7 @@ impl fmt::Debug for XmlObject<'_> { #[derive(Clone, Collect)] #[collect(no_drop)] +#[repr(C)] pub struct XmlObjectData<'gc> { /// Base script object base: RefLock>,