Skip to content

fix(libSceAjm.native): reject a null batch buffer list with a nonzero count - #5639

Closed
klosixgaming-arch wants to merge 1 commit into
boykopovar:mainfrom
klosixgaming-arch:feat/ajm-batch-null-buffer-list
Closed

klosixgaming-arch wants to merge 1 commit into
boykopovar:mainfrom
klosixgaming-arch:feat/ajm-batch-null-buffer-list

Conversation

@klosixgaming-arch

Copy link
Copy Markdown
Contributor

What

Every batch job appends through Append, which reported a null input or output buffer list with a nonzero count as unimplemented. The list the count promises does not exist, so that is a caller error rather than missing behaviour: it now throws std::invalid_argument without writing to the batch, like the library's other invalid arguments. Since Append no longer reaches NotImplemented_nid_no_patch, the seven exports that only build jobs through it (sceAjmBatchJobInitialize, ClearContext, SetGaplessDecode, RunSplit, GetResampleInfo, SetResampleParameters, GetStatistics) count as implemented (libSceAjm.native 21 to 28 of 35).

The existing test expected std::runtime_error; it now expects std::invalid_argument for a null input list and a null output list, and checks that a null list with a zero count is still accepted. No changed line overlaps #4934, #5075, #5307 or #5517.

Tested

Linux (Ubuntu 24.04, GCC 13.3, Release): built the library and its test target, ctest -R guest_ajm passes, tools/check_conventions.py --base origin/main passes. No title tested.

Checklist

  • Based on current main; no other open PR implements the same functions
  • One topic per PR; follow-ups go in a new PR
  • No comments in code except technical debt
  • Unimplemented paths throw (NotImplemented_nid_no_patch); silent stubs are listed under Silent stubs in their library's technical debt file
  • No notes, investigation .md files or images added to the repository (attach them to this PR)
  • New third-party code is a submodule built from source
  • Generic behaviour, not specific to one title
  • Depends on: none
  • Unblocks: none
  • GPUs tested: n/a
  • AI-assisted: yes

🤖 Generated with Claude Code

https://claude.ai/code/session_01Dh1MhYBFyzxRceoAxrepZ6

… count

Every batch job appends through the same helper, which reported a null
input or output buffer list with a nonzero count as unimplemented. The
list the count promises does not exist, so this is a caller error: it
now throws std::invalid_argument without writing to the batch, as other
invalid arguments of the library do.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dh1MhYBFyzxRceoAxrepZ6
@github-actions

Copy link
Copy Markdown

Progress report (91e5f60 → 2e5b4f4)

📈 System libraries: 88.38% (+0.19%, +7 implemented functions)

✅ 7 implemented
Library Name
libSceAjm.native sceAjmBatchJobClearContext
libSceAjm.native sceAjmBatchJobGetResampleInfo
libSceAjm.native sceAjmBatchJobGetStatistics
libSceAjm.native sceAjmBatchJobInitialize
libSceAjm.native sceAjmBatchJobRunSplit
libSceAjm.native sceAjmBatchJobSetGaplessDecode
libSceAjm.native sceAjmBatchJobSetResampleParameters

@oneandonlydean

Copy link
Copy Markdown
Collaborator

Closing: no title is known to reach this. With the queue at 700+ open PRs, please hold off on new PRs that don't name a title needing the change until it's down. If a title stops on this on current main, reopen with the title ID and the log line.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants