-
-
Notifications
You must be signed in to change notification settings - Fork 940
core/avm2: Minor fix to construction of children that were placed on the first frame #22239
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
Merged
Lord-McSweeney
merged 3 commits into
ruffle-rs:master
from
Lord-McSweeney:avm2-construct-children
Dec 4, 2025
Merged
core/avm2: Minor fix to construction of children that were placed on the first frame #22239
Lord-McSweeney
merged 3 commits into
ruffle-rs:master
from
Lord-McSweeney:avm2-construct-children
Dec 4, 2025
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Molisson
approved these changes
Nov 24, 2025
This change should not be observable, as no other `DisplayObject` subclasses can have timeline children
Also make them standalone functions instead of associated methods. Previously, they were associated methods on `TDisplayObject`, but they didn't actually access the `DisplayObject` they were called on
…antiation Often, `MovieClip`s have children that are placed before the `MovieClip`'s AVM2 side is allocated and instantiated. These children will be instantiated in the `super()` constructor (specifically, the `Sprite.constructChildren` call), rather than in-line with normal frame construction. However, if the `super()` constructor is /never/ called, these children will never be instantiated. This commit adds a flag that is set on such early children. Children with this flag set will never have `construct_frame` called on them during normal frame construction. Also add test coverage
8d582ad to
7aa87e3
Compare
Hancock33
added a commit
to Hancock33/batocera.piboy
that referenced
this pull request
Dec 7, 2025
------------------------------------------------------------------------------------------ duckstation.mk c49f32a5519bd312f06d4f3a4aadf10d7dba419e # Version: Commits on Dec 05, 2025 ------------------------------------------------------------------------------------------ Deps: Set PKG_CONFIG_PATH when building, ----------------------------------------------------------------------------------- eden.mk 90877dfc8546b3fb6d568ea5cce26060f2478b24 # Version: Commits on Dec 05, 2025 ----------------------------------------------------------------------------------- [cmake] only use MoltenVk on Apple platforms (#3146) ---------------------------------------------------- pcsx2.mk v2.5.350 # Version: Commits on Dec 04, 2025 ---------------------------------------------------- - [CI:AppImage: Build our own ffmpeg](PCSX2/pcsx2#13554) ----------------------------------------------------------------------------------- play.mk 63a35e28d102e482daaa5454a68c07192b4d3210 # Version: Commits on Dec 04, 2025 ----------------------------------------------------------------------------------- JS: Run NPM audit fix., ----------------------------------------------------- ryujinx.mk 1.3.230 # Version: Commits on Dec 04, 2025 ----------------------------------------------------- Canary-1.3.230 --------------------------------------------------------------- ruffle.mk nightly-2025-12-05 # Version: Commits on Dec 05, 2025 --------------------------------------------------------------- ## What's Changed * core/avm2: Minor fix to construction of children that were placed on the first frame by @Lord-McSweeney in ruffle-rs/ruffle#22239 * chore: Update translations from Crowdin by @kjarosh in ruffle-rs/ruffle#22411 **Full Changelog**: ruffle-rs/ruffle@nightly-2025-12-04...nightly-2025-12-05, -------------------------------------------------------------------------------------- scummvm.mk 3e6309674d706a33a4a779f64d43d95314b92621 # Version: Commits on Dec 05, 2025 -------------------------------------------------------------------------------------- AGI: Update function signature in RTL code, ---------------------------------------------------------------------------------------- openjkdf2.mk 8190251af150adf28092b76549903980a09020b2 # Version: Commits on Dec 05, 2025 ---------------------------------------------------------------------------------------- Fix dialog box popping up before videos, fix cutscene audio sync, fix on screen keyboard for steam deck and big picture mode, broke MoTS cutscene audio, ------------------------------------------------------------------------------------------------------ vulkan-validationlayers.mk 5e6c6bd96224c1c0bb73414a9227d93f7cc236b0 # Version: Commits on Dec 04, 2025 ------------------------------------------------------------------------------------------------------ layers: Remove unused Include headers, --------------------------------------------------------------------------------------------- libretro-fbneo.mk db02ef59a64209954b47965ae186ec95cf1da706 # Version: Commits on Dec 05, 2025 --------------------------------------------------------------------------------------------- (libretro) update files, ----------------------------------------------------------------------------------------------- libretro-geolith.mk 53afdea6196cf8e7c19c110fa1ef1ca276810eca # Version: Commits on Dec 05, 2025 ----------------------------------------------------------------------------------------------- lspc: Dark bit should be inverted, ----------------------------------------------------------------------------------------------- libretro-scummvm.mk 3e6309674d706a33a4a779f64d43d95314b92621 # Version: Commits on Dec 05, 2025 ----------------------------------------------------------------------------------------------- AGI: Update function signature in RTL code, --------------------------------------------------------------------------------------------- libretro-vba-m.mk 09c2597aae302bacd5c7dd5345028956e8eba261 # Version: Commits on Dec 04, 2025 --------------------------------------------------------------------------------------------- gb: make joypad polling more accurate Make joypad polling for GB more hardware-accurate. This fixes RoboCop Revision 1. Fixed with Claude. Fix #1491. Signed-off-by: Rafael Kitover <rkitover@gmail.com>,
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The first two commits are not observable by code (except in stack traces that will now include
Sprite.constructChildren). The third commit fixes a minor issue with child construction-construct_frameis called on the children of aMovieClipeach frame, except on the first. This ensures children that were placed earlier in the frame lifecycle are properly instantiated. On the first frame of aMovieClip, the constructor forSprite(super()in a subclass) callsSprite.constructChildrento manually construct each child that was placed on the timeline in the first frame. This PR makes sure that these first-frame children are never constructed by the usual "construct_frameon every frame" logic by setting a newFRAME_CONSTRUCT_SKIPPEDflag on them.Closes #2916