avm2: Make TObject.install_instance_slots take a MutationContext instead of an Activation
This commit is contained in:
parent
34156cc6d1
commit
932aa8cd90
|
@ -775,9 +775,8 @@ pub trait TObject<'gc>: 'gc + Collect + Debug + Into<Object<'gc>> + Clone + Copy
|
|||
.install_const_slot_late(new_slot_id, value);
|
||||
}
|
||||
|
||||
fn install_instance_slots(&mut self, activation: &mut Activation<'_, 'gc>) {
|
||||
self.base_mut(activation.context.gc_context)
|
||||
.install_instance_slots();
|
||||
fn install_instance_slots(&mut self, mc: MutationContext<'gc, '_>) {
|
||||
self.base_mut(mc).install_instance_slots();
|
||||
}
|
||||
|
||||
/// Call the object.
|
||||
|
|
|
@ -73,7 +73,7 @@ impl<'gc> ArrayObject<'gc> {
|
|||
ArrayObjectData { base, array },
|
||||
))
|
||||
.into();
|
||||
instance.install_instance_slots(activation);
|
||||
instance.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
class.call_native_init(Some(instance), &[], activation)?;
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ impl<'gc> BitmapDataObject<'gc> {
|
|||
));
|
||||
|
||||
bitmap_data.init_object2(activation.context.gc_context, instance.into());
|
||||
instance.install_instance_slots(activation);
|
||||
instance.install_instance_slots(activation.context.gc_context);
|
||||
class.call_native_init(Some(instance.into()), &[], activation)?;
|
||||
|
||||
Ok(instance.into())
|
||||
|
|
|
@ -63,7 +63,7 @@ impl<'gc> ByteArrayObject<'gc> {
|
|||
},
|
||||
))
|
||||
.into();
|
||||
instance.install_instance_slots(activation);
|
||||
instance.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
class.call_native_init(Some(instance), &[], activation)?;
|
||||
|
||||
|
|
|
@ -825,7 +825,7 @@ impl<'gc> TObject<'gc> for ClassObject<'gc> {
|
|||
|
||||
let mut instance = instance_allocator(self, activation)?;
|
||||
|
||||
instance.install_instance_slots(activation);
|
||||
instance.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
self.call_init(Some(instance), arguments, activation)?;
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ impl<'gc> Context3DObject<'gc> {
|
|||
},
|
||||
))
|
||||
.into();
|
||||
this.install_instance_slots(activation);
|
||||
this.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
class.call_native_init(Some(this), &[], activation)?;
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ impl<'gc> DomainObject<'gc> {
|
|||
DomainObjectData { base, domain },
|
||||
))
|
||||
.into();
|
||||
this.install_instance_slots(activation);
|
||||
this.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
// Note - we do *not* call the normal constructor, since that
|
||||
// creates a new domain using the system domain as a parent.
|
||||
|
|
|
@ -35,7 +35,7 @@ impl<'gc> IndexBuffer3DObject<'gc> {
|
|||
},
|
||||
))
|
||||
.into();
|
||||
this.install_instance_slots(activation);
|
||||
this.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
class.call_native_init(Some(this), &[], activation)?;
|
||||
|
||||
|
|
|
@ -147,7 +147,7 @@ impl<'gc> LoaderInfoObject<'gc> {
|
|||
},
|
||||
))
|
||||
.into();
|
||||
this.install_instance_slots(activation);
|
||||
this.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
class.call_native_init(Some(this), &[], activation)?;
|
||||
|
||||
|
@ -191,7 +191,7 @@ impl<'gc> LoaderInfoObject<'gc> {
|
|||
},
|
||||
))
|
||||
.into();
|
||||
this.install_instance_slots(activation);
|
||||
this.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
class.call_native_init(Some(this), &[], activation)?;
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ impl<'gc> NamespaceObject<'gc> {
|
|||
NamespaceObjectData { base, namespace },
|
||||
))
|
||||
.into();
|
||||
this.install_instance_slots(activation);
|
||||
this.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
class.call_native_init(Some(this), &[], activation)?;
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ impl<'gc> PrimitiveObject<'gc> {
|
|||
PrimitiveObjectData { base, primitive },
|
||||
))
|
||||
.into();
|
||||
this.install_instance_slots(activation);
|
||||
this.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
//We explicitly DO NOT CALL the native initializers of primitives here.
|
||||
//If we did so, then those primitive initializers' method types would
|
||||
|
|
|
@ -34,7 +34,7 @@ impl<'gc> Program3DObject<'gc> {
|
|||
},
|
||||
))
|
||||
.into();
|
||||
this.install_instance_slots(activation);
|
||||
this.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
class.call_native_init(Some(this), &[], activation)?;
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ impl<'gc> QNameObject<'gc> {
|
|||
QNameObjectData { base, name },
|
||||
))
|
||||
.into();
|
||||
this.install_instance_slots(activation);
|
||||
this.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
Ok(this)
|
||||
}
|
||||
|
|
|
@ -62,7 +62,7 @@ impl<'gc> RegExpObject<'gc> {
|
|||
RegExpObjectData { base, regexp },
|
||||
))
|
||||
.into();
|
||||
this.install_instance_slots(activation);
|
||||
this.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
class.call_native_init(Some(this), &[], activation)?;
|
||||
|
||||
|
|
|
@ -88,7 +88,7 @@ impl<'gc> SoundChannelObject<'gc> {
|
|||
position: 0.0,
|
||||
},
|
||||
));
|
||||
sound_object.install_instance_slots(activation);
|
||||
sound_object.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
class.call_native_init(Some(sound_object.into()), &[], activation)?;
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ impl<'gc> StageObject<'gc> {
|
|||
display_object: Some(display_object),
|
||||
},
|
||||
));
|
||||
instance.install_instance_slots(activation);
|
||||
instance.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
Ok(instance)
|
||||
}
|
||||
|
@ -101,7 +101,7 @@ impl<'gc> StageObject<'gc> {
|
|||
display_object: Some(display_object),
|
||||
},
|
||||
));
|
||||
this.install_instance_slots(activation);
|
||||
this.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
// note: for Graphics, there's no need to call init.
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ impl<'gc> TextFormatObject<'gc> {
|
|||
TextFormatObjectData { base, text_format },
|
||||
))
|
||||
.into();
|
||||
this.install_instance_slots(activation);
|
||||
this.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
Ok(this)
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ impl<'gc> TextureObject<'gc> {
|
|||
},
|
||||
))
|
||||
.into();
|
||||
this.install_instance_slots(activation);
|
||||
this.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
class.call_native_init(Some(this), &[], activation)?;
|
||||
|
||||
|
|
|
@ -80,7 +80,7 @@ impl<'gc> VectorObject<'gc> {
|
|||
))
|
||||
.into();
|
||||
|
||||
object.install_instance_slots(activation);
|
||||
object.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
Ok(object)
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ impl<'gc> VertexBuffer3DObject<'gc> {
|
|||
},
|
||||
))
|
||||
.into();
|
||||
this.install_instance_slots(activation);
|
||||
this.install_instance_slots(activation.context.gc_context);
|
||||
|
||||
class.call_native_init(Some(this), &[], activation)?;
|
||||
|
||||
|
|
|
@ -538,7 +538,7 @@ impl<'gc> Script<'gc> {
|
|||
None,
|
||||
&mut null_activation,
|
||||
)?;
|
||||
globals.install_instance_slots(&mut null_activation);
|
||||
globals.install_instance_slots(context.gc_context);
|
||||
|
||||
Avm2::run_script_initializer(*self, context)?;
|
||||
|
||||
|
|
Loading…
Reference in New Issue