Repository navigation
fix(libSceFreeType): guard stroker count outputs - #16281
Merged
oneandonlydean merged 4 commits intoNov 6, 2026
Merged
Conversation
Noxy-HNR
marked this pull request as ready for review
November 6, 2026 04:04
Contributor
|
Windows check of head Setup: Windows 11 Enterprise 22621, WinLibs GCC 15.2 UCRT, Release. The hosted Windows check does not run these tests on pull requests.
AI-assisted: yes. |
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.
What
FT_Stroker_GetCountsandFT_Stroker_GetBorderCountscreate output write guards but ignore refusal. They now check both non-null destinations before writing either count, so a read-only guest output produces a controlled error without partially changing the other output.The native query still runs first. Writable destinations retain FreeType's zero-on-error writes, optional-null outputs and points-before-contours alias order. A refused output preserves an existing native error; otherwise it returns
FT_Err_Invalid_Argument. This is host-boundary policy, not measured console behavior, and is recorded in debt. Ordinary write-watch CPU stores are not the issue addressed here. Native output order follows the bundled ftstroke.c.Tested
Current-head hosted verification (
8024e45a47): the Windows changed-test job passed; the existing stroker test and both new raw/NID output regressions passed. The job reports zero failures among 3,344 selected CTest entries, including skipped entries. Its log identifies this exact PR head. This is not a fresh full Linux run; earlier local and Linux results below retain their stated commits and scope.Windows x86-64, WinLibs GCC 15.2.0, Ninja, Release, full project configuration and source-built dependencies.
PAGE_READONLYis confirmed withVirtualQueryfor the protected cases.c55222cfc4(new tests on mainf5844034d9), both regressions fail by assertion at the refused-output result check.Final validation at
8024e45a47, including main3cb1cd29ec:libstarget and both focused test executables.guest_freetype_stroker,guest_freetype_stroker_outputsandguest_freetype_stroker_outputs_nidpassed 3/3 in each of three runs.Invalid_Argument. Restored sources were rebuilt and both variants passed again.tools/pr_overlap.py --repo boykopovar/AnyPS5 --base main --branch fix/freetype-stroker-output-guardsscanned 1,886 open PRs. It returned exit 2 for 14 branches that conflict with its base. I inspected their shared CMake/debt changes directly: feat(libSceFreeType): query glyph control boxes #9588, feat(libSceFreeType): implement FT_Atan2 and the FT_Vector polar calls #10600, feat(libSceFreeType): implement FT_Get_Sfnt_Table and FT_Outline_Get_Bitmap #10601, feat(libSceFreeType): implement FT_Open_Face for memory and path sources #10604, feat(libSceFreeType): implement FT_Done_Library and FT_Reference_Library #10606, feat(libSceFreeType): implement FT_Outline_Render #10609, feat(libSceFreeType): implement FT_Set_Renderer #10611, feat(libSceFreeType): implement the variation and multiple-master calls #10613, feat(libSceFreeType): implement FT_Get_PS_Font_Value and FT_Attach_File #10616, feat(freetype): implement font table validation #10897, feat(libSceFreeType): implement the legacy memory allocators #12004, feat(libSceFreeType): implement the legacy reallocation helpers #12373, fix(relinker): match AppContent utility import to provider #13486 and docs(debt): separate entries with blank lines and drop derived export totals #14212 concern other APIs or formatting. None changes these two Stroker count APIs or adds these new files. Combined integration with those branches is untested. The current-main merge preview is clean; there is no functional prerequisite.No Linux, console or retail-title run.
Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file.mdfiles or images added to the repository (attach them to this PR)