avm2: Store a `DisplayObject` instead of `Option<DisplayObject>` in `StageObject`

This commit is contained in:
Lord-McSweeney 2024-07-31 14:09:12 -07:00 committed by Lord-McSweeney
parent 3ae53a6ef2
commit 8f6736da74
1 changed files with 5 additions and 5 deletions

View File

@ -25,8 +25,8 @@ pub struct StageObjectData<'gc> {
/// The base data common to all AVM2 objects. /// The base data common to all AVM2 objects.
base: RefLock<ScriptObjectData<'gc>>, base: RefLock<ScriptObjectData<'gc>>,
/// The associated display object, if one exists. /// The associated display object.
display_object: Option<DisplayObject<'gc>>, display_object: DisplayObject<'gc>,
} }
impl<'gc> StageObject<'gc> { impl<'gc> StageObject<'gc> {
@ -49,7 +49,7 @@ impl<'gc> StageObject<'gc> {
activation.context.gc_context, activation.context.gc_context,
StageObjectData { StageObjectData {
base: ScriptObjectData::new(class).into(), base: ScriptObjectData::new(class).into(),
display_object: Some(display_object), display_object,
}, },
)); ));
instance.install_instance_slots(activation.context.gc_context); instance.install_instance_slots(activation.context.gc_context);
@ -99,7 +99,7 @@ impl<'gc> StageObject<'gc> {
activation.context.gc_context, activation.context.gc_context,
StageObjectData { StageObjectData {
base: ScriptObjectData::new(class).into(), base: ScriptObjectData::new(class).into(),
display_object: Some(display_object), display_object,
}, },
)); ));
this.install_instance_slots(activation.context.gc_context); this.install_instance_slots(activation.context.gc_context);
@ -124,7 +124,7 @@ impl<'gc> TObject<'gc> for StageObject<'gc> {
} }
fn as_display_object(&self) -> Option<DisplayObject<'gc>> { fn as_display_object(&self) -> Option<DisplayObject<'gc>> {
self.0.display_object Some(self.0.display_object)
} }
fn value_of(&self, _mc: &Mutation<'gc>) -> Result<Value<'gc>, Error<'gc>> { fn value_of(&self, _mc: &Mutation<'gc>) -> Result<Value<'gc>, Error<'gc>> {