avm2: Handle null elementFormat correctly when creating text line - #24307
Merged
Lord-McSweeney merged 3 commits intoJul 26, 2026
Merged
Conversation
evilpie
reviewed
Jul 26, 2026
Lord-McSweeney
force-pushed
the
avm2-null-elementformat
branch
from
July 26, 2026 13:05
2e02644 to
e3ba3b0
Compare
evilpie
approved these changes
Jul 26, 2026
Lord-McSweeney
force-pushed
the
avm2-null-elementformat
branch
from
July 26, 2026 17:46
e3ba3b0 to
abea543
Compare
Lord-McSweeney
enabled auto-merge (rebase)
July 26, 2026 17:55
Hancock33
added a commit
to Hancock33/batocera.piboy
that referenced
this pull request
Jul 28, 2026
--------------------------------------------------------- libxmp.mk libxmp-4.7.2 # Version: Commits on Jul 26, 2026 --------------------------------------------------------- Checksums (SHA256): ``` 510a96eefd79e4558fb1fa41fb5494870328776b3f77563f94f61f241f64bde1 libxmp-4.7.2.tar.gz bace7f53248a2cd5adcf77f9402a8858fc0fec05f4e6d6436e3d2a28d68f640e libxmp-lite-4.7.2.tar.gz ``` Changes in version 4.7.2 (July 26, 2026): - Fix loading Startrekker modules from memory/handle/callbacks. - Fix cmake build failure for certain Apple targets (e.g. tvOS.) - Fix stb-vorbis floor1 inverse_db_table indexing (missing part of CVE-2019-13220 fix.) -------------------------------------------------------- rocknix-abl.mk v1.1.6 # Version: Commits on Jul 04, 2026 -------------------------------------------------------- Initial commit, -------------------------------------------------------------------------------------------------------- batocera-emulationstation.mk f5d6be675dc5220606964cd839862064feb81326 # Version: Commits on Jul 27, 2026 -------------------------------------------------------------------------------------------------------- Merge pull request #2181 from dmanlfc/splash-update slightly lower the update text for batocera's new logo, ------------------------------------------------------------------------------------------------ batocera-es-piboy.mk f5d6be675dc5220606964cd839862064feb81326 # Version: Commits on Jul 27, 2026 ------------------------------------------------------------------------------------------------ Merge pull request #2181 from dmanlfc/splash-update slightly lower the update text for batocera's new logo, ------------------------------------------------------------------------------------- azahar.mk ff1d9d2985cc6a6402762011a115571fd95aef50 # Version: Commits on Jul 26, 2026 ------------------------------------------------------------------------------------- qt: Fix \New 3DS setup\ and \Old 3DS setup\ strings being erroneously swapped, ------------------------------------------------------------------------------------------ dolphin-emu.mk d742aa8b4c4d052f7dceaa39022b1fe3996f1781 # Version: Commits on Jul 26, 2026 ------------------------------------------------------------------------------------------ Merge pull request #14756 from JoshuaVandaele/gcc16-warns-fix Resolve various warnings, ------------------------------------------------------------------------------------------ duckstation.mk 12f012caa8b94c4c5f6e016fe8c55b0836b74c71 # Version: Commits on Jul 27, 2026 ------------------------------------------------------------------------------------------ Spanish (Spain) translation update 2026/07/27 (#3777) - Cherry-picking previous changes and changing inconsistent ones with previous ones across the board. - Restoring consistency when speaking towards the user (informal tuteo). - Restoring NBSPs. - Translating new strings. - Retranslated all presumed PEMT translations. - Restored previous translations in Setup Wizard (QTLinguist was not detecting correctly changes in longer strings)., ------------------------------------------------------------------------------------- hatari.mk a0c2a5ed8441d404174151791a1568a2b7878928 # Version: Commits on Jul 26, 2026 ------------------------------------------------------------------------------------- Fix change #eaa2d24aae from 2027/07/04 to skip MFM bits when motor remains ON Use FDC_Skip_FdcCycles_MFM() instead of mfm_stream_skip() to correctly handle indexes while skipping bits Fix the protection in the game \Prophecy I - The Viking Child\ in KryoFlux Stream raw dump format, -------------------------------------------------------------------------------------- openmsx.mk e954c5ce9bf393077ef6883ed222404a78ca3430 # Version: Commits on Jul 26, 2026 -------------------------------------------------------------------------------------- Update to SDL 2.32.10., ------------------------------------------------------------------------------------- ppsspp.mk 19be55253c0c7c283d766c0f968a5f9c1b2de58c # Version: Commits on Jul 27, 2026 ------------------------------------------------------------------------------------- Merge pull request #21986 from a-blondel/feature/fifa06-infra Add FIFA06 to infra-dns.json, ------------------------------------------------------------------------------------ rpcs3.mk 7a3deb649f9a0ea8a619f2f810da739b8d626689 # Version: Commits on Jul 27, 2026 ------------------------------------------------------------------------------------ Fix package install failure warning message, ----------------------------------------------------------------------------------------- supermodel.mk 24d2ffcfc7f14229337f05f4920fe26b56633d9d # Version: Commits on Jul 26, 2026 ----------------------------------------------------------------------------------------- Fix initializer order (#325), ------------------------------------------------- vice.mk r46191 # Version: Commits on Jul 27, 2026 ------------------------------------------------- null ------------------------------------------------------------------------------------- vita3k.mk be6927105e65c0d6d17b707aac2e7f72214997e4 # Version: Commits on Jul 26, 2026 ------------------------------------------------------------------------------------- external: Update dependencies (#4063) * external: Update CLI11 to version 2.6.2 * external: Update MoltenVK to version 1.4.1 * external: Update VulkanMemoryAllocator-Hpp * external: Update capstone to version 5.0.9 * external: Update concurrentqueue to version 1.0.5 * external: Update cubeb * external: Update curl to version 8.21.0 * external: Update ddspp to version 1.13 * external: Update dirent to version 1.26 * external: Update googletest to version 1.17.0 * external: Update miniz to version 3.1.2 * external: Update nativefiledialog-extended to version 1.3.0 * external: Update openssl to version 4.0.1 * external: Update pugixml to version 1.16 * external: Update sdl to version 3.2.30 * external: Update spdlog to version 1.17.0 * external: Update stb * external: Update vita-toolchain * external: Update yaml-cpp to version 0.9.0 * cmake: Add expected hash for file downloads, ----------------------------------------------------------------------------------------- xenia-edge.mk 9c729844c02c5d8c90feb901c644eab289a19885 # Version: Commits on Jul 27, 2026 ----------------------------------------------------------------------------------------- [CPU] Emit a real acquire barrier for isync and drop lwarx/stwcx fences, ------------------------------------------------------------------------------------- ikemen.mk d65ed762d12323409a25fa95f92839574b6143fa # Version: Commits on Jul 26, 2026 ------------------------------------------------------------------------------------- Merge pull request #3816 from potsmugen/push2 fix: angled shadows, p2defmul, ------------------------------------------------------------------------------------------- moonlight-qt.mk 546cb72e32e5ac04bbc7e0b3a254176e5696685a # Version: Commits on Jul 27, 2026 ------------------------------------------------------------------------------------------- Update Windows, macOS, and AppImage dependencies - SDL -> c9ad2963 - dav1d -> 1.5.4 - Detours rebuilt with EHCont, --------------------------------------------------------------- ruffle.mk nightly-2026-07-27 # Version: Commits on Jul 27, 2026 --------------------------------------------------------------- ## What's Changed * avm2: Correctly implement `DisplayObject.getRect` by @Lord-McSweeney in ruffle-rs/ruffle#24253 * avm2: Clean up some FTE logic, add validation by @Lord-McSweeney in ruffle-rs/ruffle#24304 * avm2: Stub flash.system.System.exit by @evilpie in ruffle-rs/ruffle#24300 * avm2: Handle shrinking underlying content in TextBlock.createTextLine by @evilpie in ruffle-rs/ruffle#24303 * avm2: Handle null `elementFormat` correctly when creating text line by @Lord-McSweeney in ruffle-rs/ruffle#24307 * tests: Expand the `avm2/avm1_root` test by @ChrisCPI in ruffle-rs/ruffle#24164 **Full Changelog**: ruffle-rs/ruffle@nightly-2026-07-26...nightly-2026-07-27, ----------------------------------------------------- nghttp3.mk v1.18.0 # Version: Commits on Jul 26, 2026 ----------------------------------------------------- Merge pull request #542 from ngtcp2/gcc-16 Fix build error with gcc-16, ---------------------------------------------------- ngtcp2.mk v1.25.0 # Version: Commits on Jul 26, 2026 ---------------------------------------------------- Bump package and library versions, ------------------------------------------------------------------------------------------ devilutionx.mk b3e52b1ea25aa2e41be8fe97b9c516794897812f # Version: Commits on Jul 26, 2026 ------------------------------------------------------------------------------------------ correct and complete Italian translations, ------------------------------------------------------------------------------------------ fallout2-ce.mk 552505e3f59037df037d5b2a2a0f9588ac804dc8 # Version: Commits on Jul 27, 2026 ------------------------------------------------------------------------------------------ fixes party_member.cc memory leaks (#601) updates functions: --- File: src/party_member.cc --- 661 | static int _partyMemberRecoverLoadInstance(PartyMemberListItem* a1) --- File: src/party_member.cc --- 710 | int partyMembersLoad(File* stream), ---------------------------------------------------------------------------------------------------- sdl2-gamecontrollerdb.mk 58b39858157965a8fda9dd641ccad9dc8b25527a # Version: Commits on Jul 26, 2026 ---------------------------------------------------------------------------------------------------- Add 8BitDo Ultimate 2C 0x310a Windows mapping (#971), ---------------------------------------------------------------------------------------- retroarch.mk 62c0e73e4f9d4e6ab8e8a1d0e1f4a36f7d101171 # Version: Commits on Jul 27, 2026 ---------------------------------------------------------------------------------------- audio: fix the menu background music hanging the frontend at its loop point Background music freezes RetroArch the moment the track loops, on every platform and both mixing paths. Reported as libretro/RetroArch#19262 (Linux aarch64, PulseAudio) and reproduced on Windows, where a break-in shows the main thread parked in the mixer with no frame coming out: #0 audio_mixer_mix_stream () #1 audio_mixer_mix () #2 audio_driver_flush.constprop () #3 audio_driver_menu_sample () #4 runloop_check_state () Two independent faults have to line up for that, and both are here. The decoder half is the regression. The bisect in the report lands between e312e70 and 22d9755, and the commit responsible is de45ef581a: it gave the plain resident-buffer Vorbis arm an emission bound taken from the summed granule positions, so that a chained file reports the length it plays and the last packet's overhang is trimmed. For a single-link .ogg the bound is what would come out anyway, which is why nothing changed while a track played forward. Nothing changed until it looped. audio_transfer_vorbis_cap() measures what is left as limit - emitted, and the frame == 0 arm of audio_transfer_seek() rewound rvorbis but left 'emitted' where the playthrough left it. So the seek reported success, the next read found no room under the bound and produced nothing, and the stream read as permanently ended one sample after its own end. The packet-fed arm right above already zeroed the counter, which is why a Matroska or multiplexed source never showed this. Set the cursor with the stream in both directions: zero on the loop-to-start, and the target frame on a seek that lands elsewhere. The latter was wrong for the same reason and would have shortened every subsequent read after any forward seek. The packet arm gets the same treatment for a different hole in it: it reset the blob cursor and rewound an rwebm demuxer, but left the Ogg page feeder (pg_off, seg_idx, body_off) parked at end of file, so a multiplexed .ogg rewound to a page cursor that could not produce anything either. audio_transfer_vorbis_to_head() already knows how to put every source this arm can have back at the first audio packet - including re-consuming the three headers the page walk must skip - so call it rather than open-coding a subset. The mixer half is structural, and older. Both streaming mixers reacted to an empty read on a repeating voice by seeking to zero and jumping back to the read, with the seek's return value discarded and no bound on how many times that could happen. If the rewound stream produced nothing - because the seek failed, or because it succeeded and the decoder still had nothing to give - the loop had no way out. It is not a deadlock and not a crash: the thread spins at full speed inside the mixer with no frame ever produced, so the frontend simply stops, which is what the report looked like from the outside and why the only visible symptom was a frozen menu. One rewind is now allowed per empty read. Getting frames out clears the flag, because a sound shorter than one mixing buffer legitimately wraps several times within a single call and must not be cut off by the guard - a 20 ms sample still carries audio 400 calls in. The seek's result is checked, and AUDIO_MIXER_SOUND_REPEATED fires only when the repeat actually happened rather than ahead of an attempt that may not. A voice that cannot repeat takes the same FINISHED and release path as one that reached its natural end. Whatever a future arm does, an empty repeat should end the voice, not wedge the process. Neither half had a test, so samples/audio/audio_mixer_loop is the third piece. It drives the real thing rather than a model of it: audio_transfer for the seek contract the mixer depends on (a stream that has been played out and seeked back to zero plays out again, to the byte, on WAV as well as Vorbis), then the mixer's own repeat path on a coded stream for the end-to-end shape of the report. The two halves are deliberately distinguishable at the point of failure. Against the broken decoder with the guard in place, the run ends and reports a voice that went silent; against both broken, it never reaches that assertion and a watchdog reports a spin, naming the case. That difference is the guard's whole value, so the test is built to show it rather than to collapse both into \failed\. Measured across all four combinations of the two files, old and new: mixer transfer result old old watchdog fired - spinning in case 3 old new OK new old FAIL: 3 cases (seek contract, float, int16) new new OK Self-contained and argument-free, so it goes in the samples workflow's run allowlist rather than being built and skipped. The WAV fixtures are built in memory; the Vorbis one is embedded, because the bound the loop trips over comes from an Ogg container's summed granule positions and no PCM assembled at runtime produces one. It is as small as a valid Vorbis stream gets - mono, 8 kHz, lowest quality, 50 ms - since only its existence matters, and the three setup headers are most of its 2771 bytes. Case 4 records a line rather than crossing it: a stream with no audio in it is the shape the mixer's guard exists for, and today it is refused before a voice is made, so the guard has no reachable trigger through the public loaders. That is worth stating in the test rather than leaving as a silent gap - if some future arm lets such a stream through, this is where it surfaces, bounded by the watchdog instead of hanging a CI runner. The sample's binary is added to .gitignore next to the one entry libretro-common/samples already had. Nothing else under samples/ is tracked as a build product, so the convention is to name them as they appear rather than to glob, and this one is easy to stage by accident because it sits beside the sources. Both sources pass -std=c89 -pedantic. The sample is clean under -Wall -Wextra -pedantic on gcc and clang and under ASan+UBSan, which is how the samples workflow builds everything. The decoder fix was also checked against e312e70 to confirm that commit loops correctly, so this restores the prior behaviour rather than papering over it., ---------------------------------------------------------------------------------------- doomretro.mk cb2fa469d88c65c9c97da474c626a1ed8fef29d3 # Version: Commits on Jul 27, 2026 ---------------------------------------------------------------------------------------- Fix changing `r_screensize` CVAR in console, -------------------------------------------------------------------------------------- vkquake.mk 170d4d00a1fd555972f6e4cee8c2381d88b78f66 # Version: Commits on Jul 26, 2026 -------------------------------------------------------------------------------------- Multiplayer : make server list slightly larger, -------------------------------------------------------------------------------------- yquake2.mk fa906385ac326bcd8e532c9339b6933316e908b9 # Version: Commits on Jul 26, 2026 -------------------------------------------------------------------------------------- gl3: cleanup bloom code, --------------------------------------------------------------------------------------- openlara.mk 3b268ca4bf986c380f44a26ffd9218bf6d376249 # Version: Commits on Jul 26, 2026 --------------------------------------------------------------------------------------- Allow game data in symlink dirs for nix platform (#535), ------------------------------------------------------------------------------------------ xash3d-fwgs.mk 8b15bc9a967047dd6a6f6578e5e39891ad5d2149 # Version: Commits on Jul 26, 2026 ------------------------------------------------------------------------------------------ 3rdparty: mainui: update, ---------------------------------------------------------------------------------------------- libretro-azahar.mk ff1d9d2985cc6a6402762011a115571fd95aef50 # Version: Commits on Jul 26, 2026 ---------------------------------------------------------------------------------------------- qt: Fix \New 3DS setup\ and \Old 3DS setup\ strings being erroneously swapped, -------------------------------------------------------------------------------------------------- libretro-beetle-psx.mk 33f7e850f6cf5683275ec435518d2d15abdc7d5f # Version: Commits on Jul 27, 2026 -------------------------------------------------------------------------------------------------- Texture Replacement: add clutrows, pageignore and pagemindump to dump.cfg (#980) Three optional directives for the per-game <content>-texture-dump/dump.cfg, extending the existing `ignore` directive to the page-aligned dump/replacement path. Each is read straight from dump.cfg with no core option (inert unless declared) and lives entirely in the shared rhi/rhi_tt.c tracker, so it applies to both the Vulkan and GL renderers. - clutrows a,b exclude VRAM rows a..b (inclusive) from the page hash, at both dump and match. Some games keep a live CLUT inside a texture page and animate it; page-aligned hashing then mints a new page hash every tick for unchanged art, so dumps balloon into near-duplicates and page replacements stop matching. Zeroing the declared rows before the CRC keeps the hash stable. - pageignore x,y,w,h skip page-dumping any page that overlaps this VRAM rect, for regions the game composites at runtime (sprite frames, menu text, icon slots) where page dumps are unbounded near-duplicates by design. - pagemindump w,h only dump a page when it overlaps a dumpable upload at least this large (VRAM halfwords); suppresses page dumps triggered by tiny composite writes (glyphs, icons, map pixels). Only clutrows changes the hash; pageignore/pagemindump affect only what is dumped. rhi_tt.c only. Co-authored-by: Tarrantx <24298510+Tarrantx@users.noreply.github.com>, ----------------------------------------------------------------------------------------------------- libretro-beetle-saturn.mk 262c4ff521e96e3807a94fde041f332324be5cff # Version: Commits on Jul 26, 2026 ----------------------------------------------------------------------------------------------------- input: carry mouse sensitivity fraction across frames Continuation of the output-pipeline quantization audit: the mouse sensitivity scale rounded each frame's delta independently (round-half-away-from-zero in Q16), which quantizes the *rate* rather than the position. For slow movements the setting stopped working entirely: a 1-count/frame drag at 50% sensitivity still moved 1 count/frame (0.5 rounds to 1 every frame), and at 150% it moved 2 count/frame -- an effective 200%. Fast movements were fine because the per-frame rounding error is bounded at half a count. Keep a per-player, per-axis Q16 remainder: fold it into the scaled delta, emit the floor, carry the fraction. The residual stays in [0, 0xFFFF], so alternating output (-1, 0, -1, 0 for -0.5/frame) realizes the exact long-run rate at every speed. Verified with a harness sweeping sensitivities 50..200% against input rates 1..7 counts/frame over 100k frames: emitted totals match the Q16-quantized sensitivity times the input rate to within one count everywhere. Both SS_MOUSE cases get the fix (the bitmask and per-key polling paths); the residual array is shared per player since input_type[] selects exactly one case per player per frame, and resets in input_init alongside the other per-player conditioning state. Like the existing gun-debounce state this is frontend-side conditioning and deliberately not serialized: a runahead secondary instance can diverge by at most one count for one frame, the same exposure the debounce already has., ----------------------------------------------------------------------------------------------- libretro-bluemsx.mk f1715c8bf6443c4de7cad254ea14037704f8058e # Version: Commits on Jul 27, 2026 ----------------------------------------------------------------------------------------------- Include zlib even for statically linked platforms, ------------------------------------------------------------------------------------------------ libretro-chailove.mk 2e1bad330e9bf4c74c8600ef69648b5c2420d455 # Version: Commits on Jul 26, 2026 ------------------------------------------------------------------------------------------------ Merge pull request #447 from WizzardSK/ci-linux-aarch64 ci: add a Linux aarch64 build, -------------------------------------------------------------------------------------------- libretro-dice.mk 7e7a22d27e84d73faf28424d746b7defc6a6875c # Version: Commits on Jul 26, 2026 -------------------------------------------------------------------------------------------- Merge pull request #49 from WizzardSK/ci-linux-aarch64, ------------------------------------------------------------------------------------------------- libretro-dinothawr.mk dde9179cf743838927d67ce3a11ea5904a189d47 # Version: Commits on Jul 27, 2026 ------------------------------------------------------------------------------------------------- libretro-common: pull in the inflate refill threshold Resync encoding_deflate.c for RetroArch 64e23d3: the inflate fast loop topped its bit buffer up to 56 bits at the head of every iteration, so every symbol paid a whole refill even when the buffer already held enough for a full length/distance group. It refills below 48 bits now, which is the worst case for one group (15 + 5 + 15 + 13). The win is on literal-dominated streams, which this core does not have: PNG scanline data compresses to 7.4% and is match-heavy, so decode here moves 0.2758 -> 0.2747 s over 70 assets x20, inside the noise. Taken for the same reason as the last two deflate resyncs - staying identical to upstream libretro-common is worth more than the delta either way - and it does no harm: upstream measured it neutral on match-heavy input by construction, and all 70 PNGs still decode byte-exact against the zlib-backed decoder. 3000 frames render to f654b0d8; gcc, clang, win64, win32 and STATIC_LINKING=1 build warning-free., ----------------------------------------------------------------------------------------------- libretro-dolphin.mk f76197ad8aeb87f9bb7a19d4d17edfced92aa251 # Version: Commits on Jul 26, 2026 ----------------------------------------------------------------------------------------------- Merge pull request #461 from cscd98/android-armv7a-fix libretro: specify core_args for armv7a correctly, ------------------------------------------------------------------------------------------------------ libretro-doublecherrygb.mk 79e25aaf7d362e7b340b86045f452c193e1191ae # Version: Commits on Jul 27, 2026 ------------------------------------------------------------------------------------------------------ � Updated Readme, --------------------------------------------------------------------------------------------- libretro-fbneo.mk aca45aa5e9b767d01af54eeba646702015e8b6a6 # Version: Commits on Jul 27, 2026 --------------------------------------------------------------------------------------------- libretro: stop borrowing zlib and the 7-Zip SDK from the frontend Statically linked cores were built assuming RetroArch would supply zlib and the 7-Zip SDK: EXTERNAL_ZLIB skipped dep/libs/zlib, and the lib7z sources were gated behind \ifneq ($(STATIC_LINKING), 1)\. RetroArch dropped both on 2026-07-24 (2f57044c \Remove deps/7zip\, dfd4a953 \Remove HAVE_BUILTINZLIB and the vendored deps/libz\, 0daf50e0 \Remove the vendored zlib headers\), replacing the 7-Zip SDK with its own r7z_* reader. The symbols we relied on are gone, so the link into retroarch_3ds.elf / the Vita equivalent now fails with undefined references to SzArEx_Open, SzArEx_Free, SzArEx_Extract, SzArEx_Init, SzArEx_GetFileNameUtf16, LookToRead2_CreateVTable, CrcGenerateTable, inflate, inflateInit2_, inflateEnd, crc32 and get_crc_table. Not a code regression on our side: the same tree passed and then failed on consecutive pipelines for the same sha, on the day of those upstream commits. Compile our own copies instead. Archive members are only pulled in to resolve symbols that are still undefined, so a frontend that does provide zlib keeps winning and no duplicate definition can occur. EXTERNAL_ZLIB is a makefile-only switch with no source references, and -I dep/libs/zlib is unconditional, so the headers in use do not change. emscripten keeps EXTERNAL_ZLIB=1, as emsdk supplies a real zlib port. Fixes ctr-neogeo, ctr-cps12 and vita. ps3/psl1ght, xenon, switch and ngc/wii/wiiu are broken the same way and are covered here too, though they are not built by CI., -------------------------------------------------------------------------------------------------- libretro-gearcoleco.mk 4bc802e086e56d72861e238da06aca6e05792c33 # Version: Commits on Jul 27, 2026 -------------------------------------------------------------------------------------------------- Correct ignored prefix timing before extended opcodes, ------------------------------------------------------------------------------------------------- libretro-geargrafx.mk ec2285ad8f07d28f12c868f82f162bf5038038d1 # Version: Commits on Jul 27, 2026 ------------------------------------------------------------------------------------------------- Fix unused HTTP client parameter, -------------------------------------------------------------------------------------------------- libretro-gearsystem.mk e510b4f7d90904496d28334866c015fdfb1fa187 # Version: Commits on Jul 27, 2026 -------------------------------------------------------------------------------------------------- Correct ignored prefix timing before extended opcodes, ----------------------------------------------------------------------------------------------- libretro-jollycv.mk eb14292005d51e2bef954cb75145981037ee9988 # Version: Commits on Jul 27, 2026 ----------------------------------------------------------------------------------------------- Merge pull request #4 from WizzardSK/ci-linux-aarch64 ci: add Linux aarch64 libretro build, ------------------------------------------------------------------------------------------------- libretro-jumpnbump.mk 2cc840155ce4bf42b2e9e0ef3854b32d534e607e # Version: Commits on Jul 27, 2026 ------------------------------------------------------------------------------------------------- Merge pull request #9 from WizzardSK/ci-linux-aarch64 ci: add a Linux aarch64 build, --------------------------------------------------------------------------------------------- libretro-opera.mk 0e9562eb2e2628fb4fc5d7180fd7125631da7fd4 # Version: Commits on Jul 27, 2026 --------------------------------------------------------------------------------------------- For now we need to bake zlib in even for statically linked targets, --------------------------------------------------------------------------------------------- libretro-pd777.mk 8c6d1cb4b0d57f14fb7dc18aa37a8aee79c800a3 # Version: Commits on Jul 26, 2026 --------------------------------------------------------------------------------------------- Merge pull request #30 from WizzardSK/ci-linux-aarch64, ------------------------------------------------------------------------------------------------- libretro-picodrive.mk 213c433e752b8dbea20608ba1cc0a96605ab38fe # Version: Commits on Jul 27, 2026 ------------------------------------------------------------------------------------------------- libretro-common: emscripten has <sys/mman.h>, drop it from the no-mman list The emscripten (static) build fails at link time with: wasm-ld: error: duplicate symbol: memsync wasm-ld: error: duplicate symbol: memprotect >>> defined in obj-emscripten/./libretro-common/memmap/memmap.o >>> defined in libretro_emscripten.a(memmap.o) The vendored memmap.h still lists __EMSCRIPTEN__ under 'no mman available', so memmap.c compiles the mmap/munmap/mprotect shims for that target. plat_mmap() in libretro.c references mmap(), which drags the archive member in, and that member also carries memsync() and memprotect() - both of which the frontend already defines, since upstream libretro-common dropped __EMSCRIPTEN__ from the same list. Emscripten does ship a working <sys/mman.h> (anonymous private maps are supported), so use it. memmap.o then compiles down to memsync() and memprotect() only, neither of which picodrive references, so the archive member is never pulled and the collision goes away. Nothing else in the tree calls memsync()/memprotect(), and every mmap() user goes through plat_mmap()/plat_mremap()., ---------------------------------------------------------------------------------------------- libretro-ppsspp.mk 19be55253c0c7c283d766c0f968a5f9c1b2de58c # Version: Commits on Jul 27, 2026 ---------------------------------------------------------------------------------------------- Merge pull request #21986 from a-blondel/feature/fifa06-infra Add FIFA06 to infra-dns.json, ---------------------------------------------------------------------------------------------- libretro-prboom.mk ac35b61d25317c869ba2f7f39ea4a9de1cc981aa # Version: Commits on Jul 27, 2026 ---------------------------------------------------------------------------------------------- Makefile: link against libpthread when threaded rendering is enabled rthreads.c uses the pthreads backend on every hosted non-Win32 target, but nothing ever asked for the library. On glibc older than 2.34 and on the musl-based handheld toolchains, pthread_create, pthread_join, pthread_detach, pthread_mutex_trylock and pthread_cancel still live in libpthread rather than libc, and the shared-object link lines here pass --no-undefined, so the link dies: ./libretro/libretro-common/rthreads/rthreads.o: In function `sthread_create_with_priority': rthreads.c:(.text+0xac): undefined reference to `pthread_create' ... collect2: error: ld returned 1 exit status which took out linux-x64, linux-i686, linux-aarch64, dingux-mips32 and webos-armv7a. The subset of symbols reported is the giveaway: the rest of the pthread API has libc stubs on these toolchains, so only the five that do not resolved to nothing. Add -lpthread once, after the platform blocks so an empty LIBS assignment still wins. The gate skips it where it would be wrong: HAVE_THREADS=0 targets, STATIC_LINKING targets (they archive a .a and the frontend does the linking), MSVC, and any block that deliberately zeroes LIBS, which covers the MinGW targets and linux-portable's -nostdlib link. Verified by building platform=unix to completion; the link line now ends in -lm -lpthread and the resulting prboom_libretro.so resolves all 21 of its undefined pthread symbols., ------------------------------------------------------------------------------------------- libretro-ps2.mk 8d14ef94c95b194fbfe0d7d82054a32ab21368fe # Version: Commits on Jul 26, 2026 ------------------------------------------------------------------------------------------- Makefile: Define NOMINMAX/WIN32_LEAN_AND_MEAN empty to match Granite The Windows platform blocks pass -DNOMINMAX and -DWIN32_LEAN_AND_MEAN, which define them as 1. The vendored parallel-gs Granite sources define both unconditionally and empty in 15+ files, so every such TU warned about the redefinition (empty vs 1) on MinGW. Define them empty on the command line instead: an identical redefinition is diagnostic-free, so all Granite sites become benign, and guarding the vendored files individually (which a future parallel-gs resync would undo) is unnecessary. glad.h, the only other definer in the tree (as 1), already wraps its defines in #ifndef so they never fire when the build line defines the macros, and nothing anywhere tests the macros' value -- both are #ifdef-style switches for windows.h. Verified with descriptor_set.cpp (which defines NOMINMAX empty at top level, outside any _WIN32 guard, so it reproduces on Linux): -DNOMINMAX warns, -DNOMINMAX= compiles clean. The WIN32_LEAN_AND_MEAN sites sit inside _WIN32 blocks and are covered by the same identical-redefinition rule., ---------------------------------------------------------------------------------------------------- libretro-superbroswar.mk f43233e75573a9e0067793c5fce957a1ebc6b1ae # Version: Commits on Jul 27, 2026 ---------------------------------------------------------------------------------------------------- Bake in zlib even for statically linked, ------------------------------------------------------------------------------------------------- libretro-vaporspec.mk 6abef0e3a8736340ce23d4c616982863d7f2af44 # Version: Commits on Jul 26, 2026 ------------------------------------------------------------------------------------------------- Merge pull request #19 from WizzardSK/ci-linux-aarch64 ci: add a Linux aarch64 build, --------------------------------------------------------------------------------------------- libretro-vba-m.mk 41a3382aa7ae54ff5981992d1b5cc304aa4d931b # Version: Commits on Jul 27, 2026 --------------------------------------------------------------------------------------------- translations: transifex pull Signed-off-by: Rafael Kitover <rkitover@gmail.com>, ----------------------------------------------------------------------------------------------------- libretro-virtualjaguar.mk cab0671a6741876f92f0873e201f15550e5a0995 # Version: Commits on Jul 27, 2026 ----------------------------------------------------------------------------------------------------- Merge pull request #209 from libretro/release/v2.3.2 Release v2.3.2, --------------------------------------------------------------------------------------------- libretro-wasm4.mk dc64f62c6fc404ad6d537db68565025b3ad51a20 # Version: Commits on Jul 26, 2026 --------------------------------------------------------------------------------------------- Merge pull request #872 from QuaternionWake/main Add Journey to the Steam Planet cartridge,
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
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.
Description
Previously, when calling
createTextLinewhentextBlock.content.elementFormatwasnull, our behavior didn't match Flash's.As a bonus, due to more validation, some code has been simplified.
This PR conflicts with #24306.
Testing
I've added coverage to the existing
avm2/textblock_createline_errorstest.Checklist