Skip to content

Commit 5e40136

Browse files
committed
core: Always implement TDisplayObject::as_ptr in term of base
1 parent a73e717 commit 5e40136

File tree

12 files changed

+13
-54
lines changed

12 files changed

+13
-54
lines changed

core/src/display_object.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1130,6 +1130,11 @@ pub trait TDisplayObject<'gc>:
11301130
{
11311131
fn base(self) -> Gc<'gc, DisplayObjectBase<'gc>>;
11321132

1133+
#[no_dynamic]
1134+
fn as_ptr(self) -> *const DisplayObjectPtr {
1135+
Gc::as_ptr(self.base()).cast()
1136+
}
1137+
11331138
/// The `SCALE_ROTATION_CACHED` flag should only be set in SWFv5+.
11341139
/// So scaling/rotation values always have to get recalculated from the matrix in SWFv4.
11351140
#[no_dynamic]
@@ -2398,8 +2403,6 @@ pub trait TDisplayObject<'gc>:
23982403

23992404
fn instantiate(self, gc_context: &Mutation<'gc>) -> DisplayObject<'gc>;
24002405

2401-
fn as_ptr(self) -> *const DisplayObjectPtr;
2402-
24032406
/// Whether this object can be used as a mask.
24042407
/// If this returns false and this object is used as a mask, the mask will not be applied.
24052408
/// This is used by movie clips to disable the mask when there are no children, for example.

core/src/display_object/avm1_button.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use crate::display_object::container::{
88
use crate::display_object::interactive::{
99
Avm2MousePick, InteractiveObject, InteractiveObjectBase, TInteractiveObject,
1010
};
11-
use crate::display_object::{Avm1TextFieldBinding, DisplayObjectBase, DisplayObjectPtr};
11+
use crate::display_object::{Avm1TextFieldBinding, DisplayObjectBase};
1212
use crate::events::{ClipEvent, ClipEventResult};
1313
use crate::prelude::*;
1414
use crate::string::AvmString;
@@ -253,10 +253,6 @@ impl<'gc> TDisplayObject<'gc> for Avm1Button<'gc> {
253253
Self(Gc::new(mc, data.clone())).into()
254254
}
255255

256-
fn as_ptr(self) -> *const DisplayObjectPtr {
257-
Gc::as_ptr(self.0) as *const DisplayObjectPtr
258-
}
259-
260256
fn id(self) -> CharacterId {
261257
self.0.shared.id
262258
}

core/src/display_object/avm2_button.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ use crate::context::{RenderContext, UpdateContext};
1212
use crate::display_object::avm1_button::{ButtonState, ButtonTracking};
1313
use crate::display_object::container::{dispatch_added_event, dispatch_removed_event};
1414
use crate::display_object::interactive::{InteractiveObjectBase, TInteractiveObject};
15-
use crate::display_object::{DisplayObjectBase, DisplayObjectPtr, MovieClip};
15+
use crate::display_object::{DisplayObjectBase, MovieClip};
1616
use crate::events::{ClipEvent, ClipEventResult};
1717
use crate::frame_lifecycle::catchup_display_object_to_frame;
1818
use crate::prelude::*;
@@ -416,10 +416,6 @@ impl<'gc> TDisplayObject<'gc> for Avm2Button<'gc> {
416416
Self(Gc::new(mc, (*self.0).clone())).into()
417417
}
418418

419-
fn as_ptr(self) -> *const DisplayObjectPtr {
420-
Gc::as_ptr(self.0) as *const DisplayObjectPtr
421-
}
422-
423419
fn id(self) -> CharacterId {
424420
self.0.shared.id
425421
}

core/src/display_object/bitmap.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -312,10 +312,6 @@ impl<'gc> TDisplayObject<'gc> for Bitmap<'gc> {
312312
Self(Gc::new(gc_context, self.0.as_ref().clone())).into()
313313
}
314314

315-
fn as_ptr(self) -> *const DisplayObjectPtr {
316-
Gc::as_ptr(self.0) as *const DisplayObjectPtr
317-
}
318-
319315
fn id(self) -> CharacterId {
320316
self.0.id
321317
}

core/src/display_object/edit_text.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use crate::context::{RenderContext, UpdateContext};
1414
use crate::display_object::interactive::{
1515
InteractiveObject, InteractiveObjectBase, TInteractiveObject,
1616
};
17-
use crate::display_object::{Avm1TextFieldBinding, DisplayObjectBase, DisplayObjectPtr};
17+
use crate::display_object::{Avm1TextFieldBinding, DisplayObjectBase};
1818
use crate::events::{
1919
ClipEvent, ClipEventResult, ImeCursorArea, ImeEvent, ImeNotification, ImePurpose,
2020
PlayerNotification, TextControlCode,
@@ -2525,10 +2525,6 @@ impl<'gc> TDisplayObject<'gc> for EditText<'gc> {
25252525
Self(Gc::new(gc_context, self.0.as_ref().clone())).into()
25262526
}
25272527

2528-
fn as_ptr(self) -> *const DisplayObjectPtr {
2529-
Gc::as_ptr(self.0) as *const DisplayObjectPtr
2530-
}
2531-
25322528
fn id(self) -> CharacterId {
25332529
self.0.shared.id
25342530
}

core/src/display_object/graphic.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::avm2::{
44
StageObject as Avm2StageObject,
55
};
66
use crate::context::{RenderContext, UpdateContext};
7-
use crate::display_object::{DisplayObjectBase, DisplayObjectPtr};
7+
use crate::display_object::DisplayObjectBase;
88
use crate::drawing::Drawing;
99
use crate::library::MovieLibrarySource;
1010
use crate::prelude::*;
@@ -132,10 +132,6 @@ impl<'gc> TDisplayObject<'gc> for Graphic<'gc> {
132132
Self(Gc::new(gc_context, self.0.as_ref().clone())).into()
133133
}
134134

135-
fn as_ptr(self) -> *const DisplayObjectPtr {
136-
Gc::as_ptr(self.0) as *const DisplayObjectPtr
137-
}
138-
139135
fn id(self) -> CharacterId {
140136
self.0.shared.get().id
141137
}

core/src/display_object/loader_display.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,6 @@ impl<'gc> TDisplayObject<'gc> for LoaderDisplay<'gc> {
7474
Self(Gc::new(gc_context, self.0.as_ref().clone())).into()
7575
}
7676

77-
fn as_ptr(self) -> *const DisplayObjectPtr {
78-
Gc::as_ptr(self.0) as *const DisplayObjectPtr
79-
}
80-
8177
fn id(self) -> CharacterId {
8278
u16::MAX
8379
}

core/src/display_object/morph_shape.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use crate::avm2::{
22
Activation as Avm2Activation, Object as Avm2Object, StageObject as Avm2StageObject,
33
};
44
use crate::context::{RenderContext, UpdateContext};
5-
use crate::display_object::{DisplayObjectBase, DisplayObjectPtr};
5+
use crate::display_object::DisplayObjectBase;
66
use crate::library::{Library, MovieLibrarySource};
77
use crate::prelude::*;
88
use crate::tag_utils::SwfMovie;
@@ -77,10 +77,6 @@ impl<'gc> TDisplayObject<'gc> for MorphShape<'gc> {
7777
Self(Gc::new(gc_context, self.0.as_ref().clone())).into()
7878
}
7979

80-
fn as_ptr(self) -> *const DisplayObjectPtr {
81-
Gc::as_ptr(self.0) as *const DisplayObjectPtr
82-
}
83-
8480
fn id(self) -> CharacterId {
8581
self.0.shared.get().id
8682
}

core/src/display_object/movie_clip.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2251,10 +2251,6 @@ impl<'gc> TDisplayObject<'gc> for MovieClip<'gc> {
22512251
Self(Gc::new(mc, (*self.0).clone())).into()
22522252
}
22532253

2254-
fn as_ptr(self) -> *const DisplayObjectPtr {
2255-
Gc::as_ptr(self.0) as *const DisplayObjectPtr
2256-
}
2257-
22582254
fn id(self) -> CharacterId {
22592255
self.0.id()
22602256
}

core/src/display_object/stage.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ use crate::config::Letterbox;
1111
use crate::context::{RenderContext, UpdateContext};
1212
use crate::display_object::container::ChildContainer;
1313
use crate::display_object::interactive::{InteractiveObjectBase, TInteractiveObject};
14-
use crate::display_object::{render_base, DisplayObjectBase, DisplayObjectPtr};
14+
use crate::display_object::{render_base, DisplayObjectBase};
1515
use crate::events::{ClipEvent, ClipEventResult};
1616
use crate::focus_tracker::FocusTracker;
1717
use crate::prelude::*;
@@ -744,10 +744,6 @@ impl<'gc> TDisplayObject<'gc> for Stage<'gc> {
744744
Self(Gc::new(gc_context, self.0.as_ref().clone())).into()
745745
}
746746

747-
fn as_ptr(self) -> *const DisplayObjectPtr {
748-
Gc::as_ptr(self.0) as *const DisplayObjectPtr
749-
}
750-
751747
fn local_to_global_matrix(self) -> Matrix {
752748
// The stage is in Stage coordinates by definition
753749
Default::default()

0 commit comments

Comments
 (0)