Skip to content

Commit cad7f36

Browse files
committed
core: Revert "core: Remove Option from queued_script_frame"
1 parent 1994a16 commit cad7f36

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

core/src/display_object/movie_clip.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ pub struct MovieClipData<'gc> {
175175
/// trigger on this clip rather than any input-eligible children.
176176
button_mode: Cell<bool>,
177177
last_queued_script_frame: Option<FrameNumber>,
178-
queued_script_frame: FrameNumber,
178+
queued_script_frame: Option<FrameNumber>,
179179
queued_goto_frame: Option<FrameNumber>,
180180
drop_target: Option<DisplayObject<'gc>>,
181181

@@ -220,7 +220,7 @@ impl<'gc> MovieClip<'gc> {
220220
avm2_use_hand_cursor: Cell::new(true),
221221
button_mode: Cell::new(false),
222222
last_queued_script_frame: None,
223-
queued_script_frame: 0,
223+
queued_script_frame: None,
224224
queued_goto_frame: None,
225225
drop_target: None,
226226
hit_area: None,
@@ -263,7 +263,7 @@ impl<'gc> MovieClip<'gc> {
263263
avm2_use_hand_cursor: Cell::new(true),
264264
button_mode: Cell::new(false),
265265
last_queued_script_frame: None,
266-
queued_script_frame: 0,
266+
queued_script_frame: None,
267267
queued_goto_frame: None,
268268
drop_target: None,
269269
hit_area: None,
@@ -309,7 +309,7 @@ impl<'gc> MovieClip<'gc> {
309309
avm2_use_hand_cursor: Cell::new(true),
310310
button_mode: Cell::new(false),
311311
last_queued_script_frame: None,
312-
queued_script_frame: 0,
312+
queued_script_frame: None,
313313
queued_goto_frame: None,
314314
drop_target: None,
315315
hit_area: None,
@@ -365,7 +365,7 @@ impl<'gc> MovieClip<'gc> {
365365
avm2_use_hand_cursor: Cell::new(true),
366366
button_mode: Cell::new(false),
367367
last_queued_script_frame: None,
368-
queued_script_frame: 0,
368+
queued_script_frame: None,
369369
queued_goto_frame: None,
370370
drop_target: None,
371371
hit_area: None,
@@ -432,7 +432,7 @@ impl<'gc> MovieClip<'gc> {
432432
avm2_use_hand_cursor: Cell::new(true),
433433
button_mode: Cell::new(false),
434434
last_queued_script_frame: None,
435-
queued_script_frame: 0,
435+
queued_script_frame: None,
436436
queued_goto_frame: None,
437437
drop_target: None,
438438
hit_area: None,
@@ -1571,7 +1571,7 @@ impl<'gc> MovieClip<'gc> {
15711571
write.current_frame += 1;
15721572
}
15731573

1574-
write.queued_script_frame = write.current_frame;
1574+
write.queued_script_frame = Some(write.current_frame);
15751575
if write.last_queued_script_frame != Some(write.current_frame) {
15761576
// We explicitly clear this variable since AS3 may later GOTO back
15771577
// to the already-ran frame. Since the frame number *has* changed
@@ -2631,16 +2631,16 @@ impl<'gc> TDisplayObject<'gc> for MovieClip<'gc> {
26312631
let avm2_object = write.object.and_then(|o| o.as_avm2_object());
26322632

26332633
if let Some(avm2_object) = avm2_object {
2634-
let frame_id = write.queued_script_frame;
2635-
{
2634+
if let Some(frame_id) = write.queued_script_frame {
26362635
// If we are already executing frame scripts, then we shouldn't
26372636
// run frame scripts recursively. This is because AVM2 can run
26382637
// gotos, which will both queue and run frame scripts for the
26392638
// whole movie again. If a goto is attempting to queue frame
26402639
// scripts on us AGAIN, we should allow the current stack to
26412640
// wind down before handling that.
26422641
if !write.contains_flag(MovieClipFlags::EXECUTING_AVM2_FRAME_SCRIPT) {
2643-
let is_fresh_frame = write.last_queued_script_frame != Some(frame_id);
2642+
let is_fresh_frame =
2643+
write.queued_script_frame != write.last_queued_script_frame;
26442644

26452645
if is_fresh_frame {
26462646
if let Some(Some(callable)) =

0 commit comments

Comments
 (0)