-
-
Notifications
You must be signed in to change notification settings - Fork 924
avm2: Ensure that we don't skip running queued frame scripts #10062
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
In Jacksmith I can pull the chain, but I am getting:
|
@MartySVK This PR is detecting the bug that's causing the pour issue - it will be resolved by a separate PR. |
ec898f3
to
04d71f6
Compare
Quick Test: retro-unicorn-attack.zip: thread 'main' panicked at 'Queued script frame 42 was not run for (MovieClip { ptr: 0x25d7a93e030 } "instance110" 119) - now at frame 43', core\src\display_object\movie_clip.rs:1516:17 dash_fly_by_futzi01-d9flryk.zip: thread 'main' panicked at 'Queued script frame 54 was not run for (MovieClip { ptr: 0x2a51f14fa90 } "instance337" 79) - now at frame 55', core\src\display_object\movie_clip.rs:1516:17 PixelShy Battle Clouds.zip thread 'main' panicked at 'Queued script frame 2 was not run for (MovieClip { ptr: 0x174cd52b390 } "instance1274" 937) - now at frame 3', core\src\display_object\movie_clip.rs:1516:17 Simulator 1 Starlight Glimmer.zip thread 'main' panicked at 'Queued script frame 10 was not run for (MovieClip { ptr: 0x24d12af3530 } "instance713" 628) - now at frame 11', core\src\display_object\movie_clip.rs:1516:17 bloons-tower-defense-5.zip thread 'main' panicked at 'Queued script frame 1 was not run for (MovieClip { ptr: 0x224503d1630 } "checkBox_mc" 5291) - now at frame 2', core\src\display_object\movie_clip.rs:1516:17 433935_mpnew202c.zip thread 'main' panicked at 'Queued script frame 1 was not run for (MovieClip { ptr: 0x234e83f6700 } "contenedor" 782) - now at frame 2', core\src\display_object\movie_clip.rs:1516:17 madness_combat_defense.zip thread 'main' panicked at 'Queued script frame 3 was not run for (MovieClip { ptr: 0x17e2b9ff0a0 } "instance86" 36) - now at frame 4', core\src\display_object\movie_clip.rs:1516:17 https://ufile.io/8hwv0jjn EFB4.swf (File Size: 34.3 MB) thread 'main' panicked at 'Queued script frame 16 was not run for (MovieClip { ptr: 0x1b0febbbe70 } "instance805" 138) - now at frame 17', core\src\display_object\movie_clip.rs:1516:17 NSFW stuff: thread 'main' panicked at 'Queued script frame 41 was not run for (MovieClip { ptr: 0x1ef7dcde970 } "instance79" 90) - now at frame 42', core\src\display_object\movie_clip.rs:1516:17 |
04d71f6
to
4faa5e7
Compare
We'll probably want to merge #10066 first, to avoid panicking in SWFs exposing the current incorrect behavior. |
Is there a reason to outright panic though? I thought we generally wanted to avoid adding more panics. |
This should never happen, and can least to strange issues later on in the SWF. |
4faa5e7
to
2a9e926
Compare
This is still crashing in jacksmith - I need to investigate further. |
2a9e926
to
3934a02
Compare
3934a02
to
014ddfa
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this be a Dictionary
?
Previously, running `enter_frame` twice without calling `run_frame_scripts` would cause us to skip running framescripts queued by the first `enter_frame` call. We now panic if this occurs. Adding in this check caught a bug in Loader, which wasn't skipping the first 'enterFrame' call for the constructed MovieClip (this gets treated in the same way as constructing a MovieClip from ActionScript and adding it to the stage).
014ddfa
to
2ddefdd
Compare
Previously, running
enter_frame
twice without callingrun_frame_scripts
would cause us to skip running framescripts queued by the firstenter_frame
call. We now panic if this occurs.Adding in this check caught a bug in Loader, which wasn't skipping the first 'enterFrame' call for the constructed MovieClip (this gets treated in the same way as constructing a MovieClip from ActionScript and adding it to the stage).