Skip to content

core: Remove GcCell usage in MovieClipShared #20310

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
merged 4 commits into from
May 27, 2025

Conversation

moulins
Copy link
Contributor

@moulins moulins commented Apr 30, 2025

Additionally, preloading now modifies the existing MovieClipShared instance instead of swapping a clone on each preload call.

This means that duplicating a partially-preloaded MovieClip will return a clip sharing the preload state. This seems "more correct" to me (as it means that both clips will properly finish preloading), but I haven't tested this in FP.

EDIT: Added a further refactoring that moves most of the tag preloading methods to MovieClipShared, as they mostly don't need access to the actual MC instance.

@moulins moulins force-pushed the cell-movie-clip-shared branch from c6278e2 to dd01076 Compare April 30, 2025 01:20
@moulins moulins added A-core Area: Core player, where no other category fits T-refactor Type: Refactor / Cleanup waiting-on-review Waiting on review from a Ruffle team member labels Apr 30, 2025
@moulins moulins force-pushed the cell-movie-clip-shared branch 2 times, most recently from c3789d5 to 6ec740c Compare April 30, 2025 23:07
@moulins moulins removed the waiting-on-review Waiting on review from a Ruffle team member label May 2, 2025
@moulins moulins force-pushed the cell-movie-clip-shared branch 2 times, most recently from 237a074 to 201d0a0 Compare May 2, 2025 23:04
@moulins moulins added the waiting-on-review Waiting on review from a Ruffle team member label May 2, 2025
@moulins moulins force-pushed the cell-movie-clip-shared branch 5 times, most recently from 772b382 to 929d059 Compare May 10, 2025 11:23
@moulins moulins force-pushed the cell-movie-clip-shared branch 2 times, most recently from 0e1a193 to 1a01fa8 Compare May 17, 2025 14:01
@moulins moulins force-pushed the cell-movie-clip-shared branch from 1a01fa8 to 46e6262 Compare May 22, 2025 13:32
Copy link
Member

@kjarosh kjarosh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@moulins moulins force-pushed the cell-movie-clip-shared branch from 46e6262 to 8462b55 Compare May 27, 2025 00:34
moulins added 4 commits May 27, 2025 02:35
And refactor movieclip preloading logic by segregating mutable data into a
separate GC-agnostic `MovieClipSharedMut` struct.

This allows the removal of the convoluted static data cloning logic in
`MovieClip::preload`.
Most of these do not need access to an actual MC instance; the only hold-out
is AVM1's `do_init_action`.
@moulins moulins force-pushed the cell-movie-clip-shared branch from 8462b55 to 3275ef3 Compare May 27, 2025 00:35
@moulins moulins merged commit 33d71d5 into ruffle-rs:master May 27, 2025
22 checks passed
@moulins moulins deleted the cell-movie-clip-shared branch May 27, 2025 13:17
Hancock33 added a commit to Hancock33/batocera.piboy that referenced this pull request Jun 1, 2025
------------------------------------------------------------------------------------
cubeb.mk e0470074bb051dca2c369542a61a73ea1c5c8dac # Version: Commits on May 27, 2025
------------------------------------------------------------------------------------
CI: Use Ubuntu 24.04.

Follow on from 1d3fd0f0e261eecce94924ee463509a0e234a8b3 (using 22.04).

After debugging the initial problems with PulseAudio startup behaviour in

22.04 (aggressive exit on idle), tests that verified the stream started in a

corked state (e.g. cubeb.basic_stream_operations in test_sanity) failed due

to the stream position advancing before the stream was started.

The Ubuntu 24.04 runner doesn't exhibit this issue, so rather than waste

more time debugging the 22.04 issue we'll just use 24.04.,

---------------------------------------------------------------------------------------
applewin.mk c8dee6ea5f8054b8dc91de34c8cf1d2b8fed5a14 # Version: Commits on May 28, 2025
---------------------------------------------------------------------------------------
Merge pull request #270 from AppleWin/master

Update,

-------------------------------------------------------------------------------------
hatari.mk 12851bdec0a3dd1c1945f7c76539aa2ab026bf88 # Version: Commits on May 27, 2025
-------------------------------------------------------------------------------------
m68k-linux: update for v6.15

Note: tested also WIP Atari DRM graphics driver for Linux, but

it still needs some work until it can replace the legacy \atafb\

framebuffer driver.,

-------------------------------------------------------------------------------------
ppsspp.mk 33931183a10d7f36b35eb607adebb95316c5526c # Version: Commits on May 27, 2025
-------------------------------------------------------------------------------------
Merge pull request #20411 from hrydgard/background-image-work

Fix the background image selector on MacOS and Linux (with pfd),

---------------------------------------------------------------
ruffle.mk nightly-2025-05-28 # Version: Commits on May 28, 2025
---------------------------------------------------------------
## What's Changed

* avm1: Remove `Gc` indirection for `SuperObject` by @moulins in ruffle-rs/ruffle#20369

* core: Remove `GcCell` usage in `MovieClipShared` by @moulins in ruffle-rs/ruffle#20310

* chore: Update translations by @RuffleBuild in ruffle-rs/ruffle#20469

* tests: Add support for multiple checks for an image & filters by @kjarosh in ruffle-rs/ruffle#20468

* chore: Bump winit and wgpu patch versions by @torokati44 in ruffle-rs/ruffle#20484

* build: Build binaries for Linux AArch64 by @kjarosh in ruffle-rs/ruffle#19259

**Full Changelog**: ruffle-rs/ruffle@nightly-2025-05-27...nightly-2025-05-28,

----------------------------------------------------
ryujinx.mk 1.3.53 # Version: Commits on May 28, 2025
----------------------------------------------------
# Canary builds:

These builds are experimental and may sometimes not work, use [regular builds](https://github.com/Ryubing/Stable-Releases/releases/latest) instead if that sounds like something you don't want to deal with.

| Platform | Artifact |

|--|--|

| Windows 64-bit | [Canary Windows Artifact](https://github.com/Ryubing/Canary-Releases/releases/download/1.3.53/ryujinx-canary-1.3.53-win_x64.zip) |

| Windows ARM 64-bit | [Canary Windows ARM Artifact](https://github.com/Ryubing/Canary-Releases/releases/download/1.3.53/ryujinx-canary-1.3.53-win_arm64.zip) |

| Linux 64-bit | [Canary Linux Artifact](https://github.com/Ryubing/Canary-Releases/releases/download/1.3.53/ryujinx-canary-1.3.53-linux_x64.tar.gz) |

| Linux ARM 64-bit | [Canary Linux ARM Artifact](https://github.com/Ryubing/Canary-Releases/releases/download/1.3.53/ryujinx-canary-1.3.53-linux_arm64.tar.gz) |

| macOS | [Canary macOS Artifact](https://github.com/Ryubing/Canary-Releases/releases/download/1.3.53/ryujinx-canary-1.3.53-macos_universal.app.tar.gz) |

**[Full Changelog](https://git.ryujinx.app/ryubing/ryujinx/-/compare/Canary-1.3.52...Canary-1.3.53)**

--------------------------------------------------------------------------------------
shadps4.mk e0309a4b01493cf5e543da856319f56c6fedd94a # Version: Commits on May 27, 2025
--------------------------------------------------------------------------------------
Equeue: fix WaitEqueue assert on nullptr (#2994)

* fix

* fix infinite call of waitforsmalltimer

* fix wrong nullptr check

* add comment back

* fix discrepancy

* remove assert

---------

Co-authored-by: georgemoralis <[email protected]>,

-----------------------------------------------------------------------------------
xemu.mk 38d33367eaf3425c6160ecb81ee8233f53304613 # Version: Commits on May 27, 2025
-----------------------------------------------------------------------------------
xbox: Move xbox machine property creation to class init handler,

-------------------------------------------------------------------------------------------
xenia-native.mk 270e88a7a76c7aa9c1ae6566199dc6a7463e3fb8 # Version: Commits on May 27, 2025
-------------------------------------------------------------------------------------------
[Emulator] Removed marking extracted games as booted from disc,

------------------------------------------------------------------------------------
box64.mk 1fc558fcabcf0a9da91ce585bb82924ba0ae3de4 # Version: Commits on May 28, 2025
------------------------------------------------------------------------------------
[ARM64_DYNAREC] Fixed a warning (#2678),

---------------------------------------------------------------------------------------
corsixth.mk 916587050dc03b52b6ddd751d08ed2f1871acfc2 # Version: Commits on May 27, 2025
---------------------------------------------------------------------------------------
Dont play drop sound on cancel hire (#2877)

* dont play drop sound on cancel hire,

----------------------------------------------------------------------------------
stk.mk 4dbe097195054c5e785e77e19f6d9ff8b735699f # Version: Commits on May 28, 2025
----------------------------------------------------------------------------------
Update Android target SDK,

----------------------------------------------------------------------------------------
retroarch.mk 4e30df639298e14d2ab71e57182c292f3414b1c3 # Version: Commits on May 28, 2025
----------------------------------------------------------------------------------------
Fetch translations from Crowdin,

---------------------------------------------------------------------------------------
vpinball.mk 0d08f532e02adcf0bf20d83eeaf4ff57da88fd30 # Version: Commits on Jul 23, 2024
---------------------------------------------------------------------------------------
misc: standalone builds for macos, ios, tvos, android, linux, and rpi,

----------------------------------------------------------------------------------------
doomretro.mk c01f4f3fdc3cf06123d232b29a374bcbe36792f6 # Version: Commits on May 28, 2025
----------------------------------------------------------------------------------------
Minor tweaks,

-------------------------------------------------------------------------------------
gzdoom.mk 6c42ea75189c52ac821cc663f3e763004d96657b # Version: Commits on May 28, 2025
-------------------------------------------------------------------------------------
- fix pointer mixup in whirlwind DoSpecialDamage(),

-----------------------------------------------------------------------------------
tr1x.mk aae6ddc8c125e4cfd3ced228dbdb55da160e8097 # Version: Commits on May 27, 2025
-----------------------------------------------------------------------------------
objects: convert semi_transparent bit flag to bool,

-----------------------------------------------------------------------------------
tr2x.mk aae6ddc8c125e4cfd3ced228dbdb55da160e8097 # Version: Commits on May 27, 2025
-----------------------------------------------------------------------------------
objects: convert semi_transparent bit flag to bool,

------------------------------------------------------------------------------------------
xash3d-fwgs.mk 05edde050d9df71c215884cd3a6a7f4c2c0c481a # Version: Commits on May 27, 2025
------------------------------------------------------------------------------------------
engine: always remap clipnodes for bsp30ext,

---------------------------------------------------------------------------------------------------
libretro-dosbox-pure.mk 97b248a7698f736d7709e838459a019808f9ae0e # Version: Commits on May 27, 2025
---------------------------------------------------------------------------------------------------
Move some more code into pad mapper,

---------------------------------------------------------------------------------------------
libretro-fbneo.mk 5a899270e77ff9fea4a626b6aa0e278ca64fee45 # Version: Commits on May 28, 2025
---------------------------------------------------------------------------------------------
(libretro) update files,

-------------------------------------------------------------------------------------------------
libretro-geargrafx.mk a966deeaddf2bd0621dd1787c16b0f133c166481 # Version: Commits on May 27, 2025
-------------------------------------------------------------------------------------------------
Try loading gamecontrollerdb.txt regardless the cwd,

----------------------------------------------------------------------------------------------
libretro-ppsspp.mk 33931183a10d7f36b35eb607adebb95316c5526c # Version: Commits on May 27, 2025
----------------------------------------------------------------------------------------------
Merge pull request #20411 from hrydgard/background-image-work

Fix the background image selector on MacOS and Linux (with pfd),

---------------------------------------------------------------------------------------------
libretro-vba-m.mk 7c1a6a44f72ed1299c3ded888da7276764761619 # Version: Commits on May 28, 2025
---------------------------------------------------------------------------------------------
Set avformat first to fix linking issue

Set avformat first to fix linking issue,
@danielhjacobs danielhjacobs removed the waiting-on-review Waiting on review from a Ruffle team member label Jun 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-core Area: Core player, where no other category fits T-refactor Type: Refactor / Cleanup
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants