core: Remove previous changes to make certain `DisplayObject` methods take `&mut self`, which noises up the PR
This commit is contained in:
parent
6d992e239a
commit
ba311dd5b4
|
@ -2769,7 +2769,7 @@ impl<'a, 'gc, 'gc_context> Activation<'a, 'gc, 'gc_context> {
|
|||
if let Some(level) = self.context.levels.get(&level_id) {
|
||||
*level
|
||||
} else {
|
||||
let mut level: DisplayObject<'_> = MovieClip::new(
|
||||
let level: DisplayObject<'_> = MovieClip::new(
|
||||
SwfSlice::empty(self.base_clip().movie().unwrap()),
|
||||
self.context.gc_context,
|
||||
)
|
||||
|
|
|
@ -487,7 +487,7 @@ fn clear<'gc>(
|
|||
}
|
||||
|
||||
fn attach_movie<'gc>(
|
||||
mut movie_clip: MovieClip<'gc>,
|
||||
movie_clip: MovieClip<'gc>,
|
||||
activation: &mut Activation<'_, 'gc, '_>,
|
||||
args: &[Value<'gc>],
|
||||
) -> Result<Value<'gc>, Error<'gc>> {
|
||||
|
@ -512,7 +512,7 @@ fn attach_movie<'gc>(
|
|||
return Ok(Value::Undefined);
|
||||
}
|
||||
|
||||
if let Ok(mut new_clip) = activation
|
||||
if let Ok(new_clip) = activation
|
||||
.context
|
||||
.library
|
||||
.library_for_movie(movie_clip.movie().unwrap())
|
||||
|
@ -543,7 +543,7 @@ fn attach_movie<'gc>(
|
|||
}
|
||||
|
||||
fn create_empty_movie_clip<'gc>(
|
||||
mut movie_clip: MovieClip<'gc>,
|
||||
movie_clip: MovieClip<'gc>,
|
||||
activation: &mut Activation<'_, 'gc, '_>,
|
||||
args: &[Value<'gc>],
|
||||
) -> Result<Value<'gc>, Error<'gc>> {
|
||||
|
@ -568,7 +568,7 @@ fn create_empty_movie_clip<'gc>(
|
|||
.movie()
|
||||
.or_else(|| activation.base_clip().movie())
|
||||
.unwrap();
|
||||
let mut new_clip = MovieClip::new(SwfSlice::empty(swf_movie), activation.context.gc_context);
|
||||
let new_clip = MovieClip::new(SwfSlice::empty(swf_movie), activation.context.gc_context);
|
||||
|
||||
// Set name and attach to parent.
|
||||
new_clip.set_name(activation.context.gc_context, &new_instance_name);
|
||||
|
@ -585,7 +585,7 @@ fn create_empty_movie_clip<'gc>(
|
|||
}
|
||||
|
||||
fn create_text_field<'gc>(
|
||||
mut movie_clip: MovieClip<'gc>,
|
||||
movie_clip: MovieClip<'gc>,
|
||||
activation: &mut Activation<'_, 'gc, '_>,
|
||||
args: &[Value<'gc>],
|
||||
) -> Result<Value<'gc>, Error<'gc>> {
|
||||
|
@ -617,7 +617,7 @@ fn create_text_field<'gc>(
|
|||
.unwrap_or(Value::Undefined)
|
||||
.coerce_to_f64(activation)?;
|
||||
|
||||
let mut text_field: DisplayObject<'gc> =
|
||||
let text_field: DisplayObject<'gc> =
|
||||
EditText::new(&mut activation.context, movie, x, y, width, height).into();
|
||||
text_field.set_name(
|
||||
activation.context.gc_context,
|
||||
|
@ -675,7 +675,7 @@ pub fn duplicate_movie_clip_with_bias<'gc>(
|
|||
let init_object = args.get(2);
|
||||
|
||||
// Can't duplicate the root!
|
||||
let mut parent = if let Some(parent) = movie_clip.parent().and_then(|o| o.as_movie_clip()) {
|
||||
let parent = if let Some(parent) = movie_clip.parent().and_then(|o| o.as_movie_clip()) {
|
||||
parent
|
||||
} else {
|
||||
return Ok(Value::Undefined);
|
||||
|
@ -687,7 +687,7 @@ pub fn duplicate_movie_clip_with_bias<'gc>(
|
|||
return Ok(Value::Undefined);
|
||||
}
|
||||
|
||||
if let Ok(mut new_clip) = activation
|
||||
if let Ok(new_clip) = activation
|
||||
.context
|
||||
.library
|
||||
.library_for_movie(movie_clip.movie().unwrap())
|
||||
|
|
|
@ -874,7 +874,7 @@ mod tests {
|
|||
let mut avm1 = Avm1::new(gc_context, swf_version);
|
||||
let mut avm2 = Avm2::new(gc_context);
|
||||
let swf = Arc::new(SwfMovie::empty(swf_version));
|
||||
let mut root: DisplayObject<'_> =
|
||||
let root: DisplayObject<'_> =
|
||||
MovieClip::new(SwfSlice::empty(swf.clone()), gc_context).into();
|
||||
root.set_depth(gc_context, 0);
|
||||
let mut levels = BTreeMap::new();
|
||||
|
|
|
@ -36,7 +36,7 @@ where
|
|||
let mut avm1 = Avm1::new(gc_context, swf_version);
|
||||
let mut avm2 = Avm2::new(gc_context);
|
||||
let swf = Arc::new(SwfMovie::empty(swf_version));
|
||||
let mut root: DisplayObject<'gc> =
|
||||
let root: DisplayObject<'gc> =
|
||||
MovieClip::new(SwfSlice::empty(swf.clone()), gc_context).into();
|
||||
root.set_depth(gc_context, 0);
|
||||
let mut levels = BTreeMap::new();
|
||||
|
|
|
@ -732,14 +732,14 @@ pub trait TDisplayObject<'gc>:
|
|||
/// Events execute inside-out; the deepest child will react first, followed by its parent, and
|
||||
/// so forth.
|
||||
fn handle_clip_event(
|
||||
&mut self,
|
||||
&self,
|
||||
_context: &mut UpdateContext<'_, 'gc, '_>,
|
||||
_event: ClipEvent,
|
||||
) -> ClipEventResult {
|
||||
ClipEventResult::NotHandled
|
||||
}
|
||||
|
||||
fn run_frame(&mut self, _context: &mut UpdateContext<'_, 'gc, '_>) {}
|
||||
fn run_frame(&self, _context: &mut UpdateContext<'_, 'gc, '_>) {}
|
||||
fn render(&self, _context: &mut RenderContext<'_, 'gc>) {}
|
||||
|
||||
fn unload(&self, context: &mut UpdateContext<'_, 'gc, '_>) {
|
||||
|
@ -872,7 +872,7 @@ pub trait TDisplayObject<'gc>:
|
|||
}
|
||||
|
||||
fn post_instantiation(
|
||||
&mut self,
|
||||
&self,
|
||||
context: &mut UpdateContext<'_, 'gc, '_>,
|
||||
_display_object: DisplayObject<'gc>,
|
||||
_init_object: Option<Avm1Object<'gc>>,
|
||||
|
|
|
@ -80,7 +80,7 @@ impl<'gc> TDisplayObject<'gc> for Bitmap<'gc> {
|
|||
}
|
||||
}
|
||||
|
||||
fn run_frame(&mut self, _context: &mut UpdateContext) {
|
||||
fn run_frame(&self, _context: &mut UpdateContext) {
|
||||
// Noop
|
||||
}
|
||||
|
||||
|
|
|
@ -115,7 +115,7 @@ impl<'gc> Button<'gc> {
|
|||
/// This function instantiates children and thus must not be called whilst
|
||||
/// the caller is holding a write lock on the button data.
|
||||
fn set_state(
|
||||
&mut self,
|
||||
&self,
|
||||
self_display_object: DisplayObject<'gc>,
|
||||
context: &mut crate::context::UpdateContext<'_, 'gc, '_>,
|
||||
state: ButtonState,
|
||||
|
@ -153,7 +153,7 @@ impl<'gc> Button<'gc> {
|
|||
|
||||
drop(write);
|
||||
|
||||
for (mut child, depth) in new_children {
|
||||
for (child, depth) in new_children {
|
||||
// Initialize child.
|
||||
child.post_instantiation(context, child, None, Instantiator::Movie, false);
|
||||
child.run_frame(context);
|
||||
|
@ -174,7 +174,7 @@ impl<'gc> TDisplayObject<'gc> for Button<'gc> {
|
|||
}
|
||||
|
||||
fn post_instantiation(
|
||||
&mut self,
|
||||
&self,
|
||||
context: &mut UpdateContext<'_, 'gc, '_>,
|
||||
display_object: DisplayObject<'gc>,
|
||||
_init_object: Option<Object<'gc>>,
|
||||
|
@ -200,7 +200,7 @@ impl<'gc> TDisplayObject<'gc> for Button<'gc> {
|
|||
}
|
||||
}
|
||||
|
||||
fn run_frame(&mut self, context: &mut UpdateContext<'_, 'gc, '_>) {
|
||||
fn run_frame(&self, context: &mut UpdateContext<'_, 'gc, '_>) {
|
||||
let self_display_object = (*self).into();
|
||||
let initialized = self.0.read().initialized;
|
||||
|
||||
|
@ -240,7 +240,7 @@ impl<'gc> TDisplayObject<'gc> for Button<'gc> {
|
|||
|
||||
drop(read);
|
||||
|
||||
for (mut child, depth) in new_children {
|
||||
for (child, depth) in new_children {
|
||||
child.post_instantiation(context, child, None, Instantiator::Movie, false);
|
||||
self.0
|
||||
.write(context.gc_context)
|
||||
|
@ -249,7 +249,7 @@ impl<'gc> TDisplayObject<'gc> for Button<'gc> {
|
|||
}
|
||||
}
|
||||
|
||||
for mut child in self.iter_execution_list() {
|
||||
for child in self.iter_execution_list() {
|
||||
child.run_frame(context);
|
||||
}
|
||||
}
|
||||
|
@ -322,12 +322,12 @@ impl<'gc> TDisplayObject<'gc> for Button<'gc> {
|
|||
/// Events execute inside-out; the deepest child will react first, followed by its parent, and
|
||||
/// so forth.
|
||||
fn handle_clip_event(
|
||||
&mut self,
|
||||
&self,
|
||||
context: &mut UpdateContext<'_, 'gc, '_>,
|
||||
event: ClipEvent,
|
||||
) -> ClipEventResult {
|
||||
if event.propagates() {
|
||||
for mut child in self.iter_execution_list() {
|
||||
for child in self.iter_execution_list() {
|
||||
if child.handle_clip_event(context, event) == ClipEventResult::Handled {
|
||||
return ClipEventResult::Handled;
|
||||
}
|
||||
|
|
|
@ -90,7 +90,7 @@ pub trait TDisplayObjectContainer<'gc>:
|
|||
/// being placed by script. If such a child was removed from said lists, it
|
||||
/// will be returned here. Otherwise, this method returns `None`.
|
||||
fn replace_at_depth(
|
||||
&mut self,
|
||||
self,
|
||||
context: &mut UpdateContext<'_, 'gc, '_>,
|
||||
child: DisplayObject<'gc>,
|
||||
depth: Depth,
|
||||
|
@ -214,14 +214,14 @@ macro_rules! impl_display_object_container {
|
|||
}
|
||||
|
||||
fn replace_at_depth(
|
||||
&mut self,
|
||||
self,
|
||||
context: &mut UpdateContext<'_, 'gc, '_>,
|
||||
child: DisplayObject<'gc>,
|
||||
depth: Depth,
|
||||
) -> Option<DisplayObject<'gc>> {
|
||||
child.set_place_frame(context.gc_context, 0);
|
||||
child.set_depth(context.gc_context, depth);
|
||||
child.set_parent(context.gc_context, Some((*self).into()));
|
||||
child.set_parent(context.gc_context, Some(self.into()));
|
||||
|
||||
let mut write = self.0.write(context.gc_context);
|
||||
|
||||
|
|
|
@ -1093,7 +1093,7 @@ impl<'gc> TDisplayObject<'gc> for EditText<'gc> {
|
|||
Some(self.0.read().static_data.swf.clone())
|
||||
}
|
||||
|
||||
fn run_frame(&mut self, _context: &mut UpdateContext) {
|
||||
fn run_frame(&self, _context: &mut UpdateContext) {
|
||||
// Noop
|
||||
}
|
||||
|
||||
|
@ -1102,7 +1102,7 @@ impl<'gc> TDisplayObject<'gc> for EditText<'gc> {
|
|||
}
|
||||
|
||||
fn post_instantiation(
|
||||
&mut self,
|
||||
&self,
|
||||
context: &mut UpdateContext<'_, 'gc, '_>,
|
||||
display_object: DisplayObject<'gc>,
|
||||
_init_object: Option<Object<'gc>>,
|
||||
|
@ -1387,7 +1387,7 @@ impl<'gc> TDisplayObject<'gc> for EditText<'gc> {
|
|||
}
|
||||
|
||||
fn handle_clip_event(
|
||||
&mut self,
|
||||
&self,
|
||||
context: &mut UpdateContext<'_, 'gc, '_>,
|
||||
event: ClipEvent,
|
||||
) -> ClipEventResult {
|
||||
|
|
|
@ -55,7 +55,7 @@ impl<'gc> TDisplayObject<'gc> for Graphic<'gc> {
|
|||
bounds
|
||||
}
|
||||
|
||||
fn run_frame(&mut self, _context: &mut UpdateContext) {
|
||||
fn run_frame(&self, _context: &mut UpdateContext) {
|
||||
// Noop
|
||||
}
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ impl<'gc> TDisplayObject<'gc> for MorphShape<'gc> {
|
|||
Some(*self)
|
||||
}
|
||||
|
||||
fn run_frame(&mut self, _context: &mut UpdateContext) {
|
||||
fn run_frame(&self, _context: &mut UpdateContext) {
|
||||
// Noop
|
||||
}
|
||||
|
||||
|
|
|
@ -1104,7 +1104,7 @@ impl<'gc> MovieClip<'gc> {
|
|||
/// Instantiate a given child object on the timeline at a given depth.
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
fn instantiate_child(
|
||||
mut self,
|
||||
self,
|
||||
self_display_object: DisplayObject<'gc>,
|
||||
context: &mut UpdateContext<'_, 'gc, '_>,
|
||||
id: CharacterId,
|
||||
|
@ -1112,7 +1112,7 @@ impl<'gc> MovieClip<'gc> {
|
|||
place_object: &swf::PlaceObject,
|
||||
copy_previous_properties: bool,
|
||||
) -> Option<DisplayObject<'gc>> {
|
||||
if let Ok(mut child) = context
|
||||
if let Ok(child) = context
|
||||
.library
|
||||
.library_for_movie_mut(self.movie().unwrap()) //TODO
|
||||
.instantiate_by_id(id, context.gc_context)
|
||||
|
@ -1381,7 +1381,7 @@ impl<'gc> MovieClip<'gc> {
|
|||
}
|
||||
|
||||
fn construct_as_avm1_object(
|
||||
mut self,
|
||||
self,
|
||||
context: &mut UpdateContext<'_, 'gc, '_>,
|
||||
display_object: DisplayObject<'gc>,
|
||||
init_object: Option<Avm1Object<'gc>>,
|
||||
|
@ -1657,9 +1657,9 @@ impl<'gc> TDisplayObject<'gc> for MovieClip<'gc> {
|
|||
self.0.read().movie().version()
|
||||
}
|
||||
|
||||
fn run_frame(&mut self, context: &mut UpdateContext<'_, 'gc, '_>) {
|
||||
fn run_frame(&self, context: &mut UpdateContext<'_, 'gc, '_>) {
|
||||
// Children must run first.
|
||||
for mut child in self.iter_execution_list() {
|
||||
for child in self.iter_execution_list() {
|
||||
child.run_frame(context);
|
||||
}
|
||||
|
||||
|
@ -1770,12 +1770,12 @@ impl<'gc> TDisplayObject<'gc> for MovieClip<'gc> {
|
|||
}
|
||||
|
||||
fn handle_clip_event(
|
||||
&mut self,
|
||||
&self,
|
||||
context: &mut UpdateContext<'_, 'gc, '_>,
|
||||
event: ClipEvent,
|
||||
) -> ClipEventResult {
|
||||
if event.propagates() {
|
||||
for mut child in self.iter_execution_list() {
|
||||
for child in self.iter_execution_list() {
|
||||
if child.handle_clip_event(context, event) == ClipEventResult::Handled {
|
||||
return ClipEventResult::Handled;
|
||||
}
|
||||
|
@ -1794,7 +1794,7 @@ impl<'gc> TDisplayObject<'gc> for MovieClip<'gc> {
|
|||
}
|
||||
|
||||
fn post_instantiation(
|
||||
&mut self,
|
||||
&self,
|
||||
context: &mut UpdateContext<'_, 'gc, '_>,
|
||||
display_object: DisplayObject<'gc>,
|
||||
init_object: Option<Avm1Object<'gc>>,
|
||||
|
|
|
@ -53,7 +53,7 @@ impl<'gc> TDisplayObject<'gc> for Text<'gc> {
|
|||
Some(self.0.read().static_data.swf.clone())
|
||||
}
|
||||
|
||||
fn run_frame(&mut self, _context: &mut UpdateContext) {
|
||||
fn run_frame(&self, _context: &mut UpdateContext) {
|
||||
// Noop
|
||||
}
|
||||
|
||||
|
|
|
@ -290,7 +290,7 @@ impl Player {
|
|||
|
||||
player.mutate_with_update_context(|context| {
|
||||
// Instantiate an empty root before the main movie loads.
|
||||
let mut fake_root = MovieClip::from_movie(context.gc_context, fake_movie);
|
||||
let fake_root = MovieClip::from_movie(context.gc_context, fake_movie);
|
||||
fake_root.post_instantiation(
|
||||
context,
|
||||
fake_root.into(),
|
||||
|
@ -358,7 +358,7 @@ impl Player {
|
|||
.library_for_movie_mut(context.swf.clone())
|
||||
.set_avm2_domain(domain);
|
||||
|
||||
let mut root: DisplayObject =
|
||||
let root: DisplayObject =
|
||||
MovieClip::from_movie(context.gc_context, context.swf.clone()).into();
|
||||
|
||||
root.set_depth(context.gc_context, 0);
|
||||
|
@ -608,7 +608,7 @@ impl Player {
|
|||
if button_event.is_some() {
|
||||
self.mutate_with_update_context(|context| {
|
||||
let levels: Vec<DisplayObject<'_>> = context.levels.values().copied().collect();
|
||||
for mut level in levels {
|
||||
for level in levels {
|
||||
if let Some(button_event) = button_event {
|
||||
let state = level.handle_clip_event(context, button_event);
|
||||
if state == ClipEventResult::Handled {
|
||||
|
@ -658,7 +658,7 @@ impl Player {
|
|||
// Fire clip event on all clips.
|
||||
if let Some(clip_event) = clip_event {
|
||||
let levels: Vec<DisplayObject<'_>> = context.levels.values().copied().collect();
|
||||
for mut level in levels {
|
||||
for level in levels {
|
||||
level.handle_clip_event(context, clip_event);
|
||||
}
|
||||
}
|
||||
|
@ -689,7 +689,7 @@ impl Player {
|
|||
PlayerEvent::MouseDown { .. } => {
|
||||
is_mouse_down = true;
|
||||
needs_render = true;
|
||||
if let Some(mut node) = context.mouse_hovered_object {
|
||||
if let Some(node) = context.mouse_hovered_object {
|
||||
node.handle_clip_event(context, ClipEvent::Press);
|
||||
}
|
||||
}
|
||||
|
@ -697,7 +697,7 @@ impl Player {
|
|||
PlayerEvent::MouseUp { .. } => {
|
||||
is_mouse_down = false;
|
||||
needs_render = true;
|
||||
if let Some(mut node) = context.mouse_hovered_object {
|
||||
if let Some(node) = context.mouse_hovered_object {
|
||||
node.handle_clip_event(context, ClipEvent::Release);
|
||||
}
|
||||
}
|
||||
|
@ -766,7 +766,7 @@ impl Player {
|
|||
|
||||
if cur_hovered.map(|d| d.as_ptr()) != new_hovered.map(|d| d.as_ptr()) {
|
||||
// RollOut of previous node.
|
||||
if let Some(mut node) = cur_hovered {
|
||||
if let Some(node) = cur_hovered {
|
||||
if !node.removed() {
|
||||
node.handle_clip_event(context, ClipEvent::RollOut);
|
||||
}
|
||||
|
@ -774,7 +774,7 @@ impl Player {
|
|||
|
||||
// RollOver on new node.I still
|
||||
new_cursor = MouseCursor::Arrow;
|
||||
if let Some(mut node) = new_hovered {
|
||||
if let Some(node) = new_hovered {
|
||||
new_cursor = node.mouse_cursor();
|
||||
node.handle_clip_event(context, ClipEvent::RollOver);
|
||||
}
|
||||
|
@ -828,7 +828,7 @@ impl Player {
|
|||
// want to run frames on
|
||||
let levels: Vec<_> = update_context.levels.values().copied().collect();
|
||||
|
||||
for mut level in levels {
|
||||
for level in levels {
|
||||
level.run_frame(update_context);
|
||||
}
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue