CNA-BUG-237: A comment in Sdl3Platform.cpp refers to a Game::UpdateInput() that does not exist

CNA snapshot c1c316b9  ·  Known Issues › Current bugs  ·  source links pinned to c1c316b9

✓

Evidence basis: source-verified at the pinned commit; tests exist (not executed for this page). Claims on this page were checked by reading the CNA source at commit c1c316b9; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.

The SDL3 platform explains its lazy controller-subsystem start by saying Game::UpdateInput() pumps the input services only once the subsystem is initialised, but Game has no UpdateInput(); the per-frame controller pump lives in Game::PollEvents.

Identifier
CNA-BUG-237
Category
Bug
Subsystem
Documentation & release tooling
Status
Open
Verified against
CNA c1c316b9 (c1c316b9c7a846ce8002809c151fcd1af14942c9)
Severity
Low (a triage suggestion, not a project priority)
Evidence basis
Source-verified: read at TARGET, not executed
Tests touching this area
Yes: see Current tests
Affected contract
Source comment in CNA::Platform::Sdl3::Sdl3Platform::EnsureControllerSubsystem

Expected behaviour

The comment explains a real and subtle rule -- the controller subsystem is started by the first controller query, not by the loop -- so it should name the function that actually pumps controllers each frame.

Actual behaviour at TARGET

Sdl3Platform.cpp says “Game::UpdateInput() deliberately does not reach these accessors until the subsystem is already initialized”. Game.cpp has no UpdateInput; the per-frame pump is in Game::PollEvents, guarded by IsSubsystemInitialized(PlatformSubsystem::Gamepad) before it reaches GetGamepad()/GetJoystick().

Source locations

Evidence

Checked by reading the SDL3 comment and searching modules/runtime/src/Game.cpp for UpdateInput at c1c316b9 (across the source tree it appears only in this comment; Game::PollEvents holds the gate). Not executed.

Independent re-verification: Checked by reading the SDL3 comment and Game::PollEvents in Game.cpp at c1c316b9; not executed. No Game::UpdateInput was ever declared or defined at any commit up to the target; the name entered with the commit and the plan_platform.md PLAT-83 row that introduced the gamepad-gated pump. Across the tree the name appears in that source comment, in that PLAT-83 row (a second occurrence of the same misnaming, which the suggested comment fix would not touch) and, unrelated, in a design sketch in cnaplatform.md. Game::PollEvents holds the IsSubsystemInitialized(Gamepad) gate.

Focused reproduction

No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.

Current tests

Not applicable: comment-only defect. The lazy-start behaviour itself is exercised by the platform input suites.

Regression test

Replace Game::UpdateInput() with Game::PollEvents in the comment.

Blast radius

Maintainers of the SDL3 controller path who look for Game::UpdateInput. No runtime effect.

Workaround

No workaround is known.

The same subject is explained at several altitudes. These are the neighbouring pages at each one.

User guide
Input: gamepad
Known issues
Bug index