CNA-BUG-223: docs/input-backend.md names a SdlInputBridge ProcessEvent overload and src/Input/... paths that do not exist at TARGET
Evidence basis: source-verified at the pinned commit. Claims on this page were checked by reading the CNA source at commit 009d40f5; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.
docs/input-backend.md describes a raw SdlInputBridge::ProcessEvent overload that the SDL-shaped test-double retirement (PLAT-90) removed, and cites src/Input/Internal/ and src/Input/Xna/ paths; the input sources live under modules/input/src. (The comments naming a nonexistent Game::UpdateInput() in the SDL3 and X11 platforms are published separately as CNA-BUG-237.)
- Identifier
CNA-BUG-223- Category
- Bug
- Subsystem
- Documentation & release tooling
- Status
- Open
- Verified against
- CNA
009d40f5(009d40f5dd085c4e674d3479675fac84b12b3e0a) - Severity
- Low (a triage suggestion, not a project priority)
- Evidence basis
- Source-verified: read at TARGET, not executed
- Tests touching this area
- None
- Affected contract
- Maintainer documentation of the input pump: the EnsureControllerSubsystem comments in the SDL3 and X11 platforms, and docs/input-backend.md
Expected behaviour
In-repo documentation names the functions and files a maintainer has to open. At TARGET the single production event funnel is PlatformInputBridge::ProcessEvent, called from Game::PollEvents in Game.cpp; SdlInputBridge keeps only key-name helpers and test controls; and the input sources live under modules/input/src (Internal, Xna and CnaExt).
Actual behaviour at TARGET
input-backend.md section 1 says SdlInputBridge's "raw `ProcessEvent` overload is only an adapter for legacy SDL-shaped tests and delegates to the platform bridge in an SDL3 build". SdlInputBridge.hpp declares no ProcessEvent (it was removed in PLAT-90, commit a440cca08); the only one is PlatformInputBridge::ProcessEvent. The same document cites src/Input/Internal/InputManager.cpp and src/Input/Internal/GestureDetector.cpp, and its section 6 verifies thread-freedom "under src/Input/Internal/ or src/Input/Xna/"; the files are modules/input/src/Internal/ and modules/input/src/Xna/. The thread-freedom claim itself still holds there: no mutex, atomic or thread appears under modules/input/src.
Source locations
modules/platform/src/Sdl3/Sdl3Platform.cpp— comment above Sdl3Platform::EnsureControllerSubsystemmodules/platform/src/X11/X11Platform.cpp— comment above X11Platform::EnsureControllerSubsystemmodules/runtime/src/Game.cpp— Game::PollEvents: the real pump and the IsSubsystemInitialized gatedocs/input-backend.md— sections 1 and 6modules/input/include/CNA/Internal/Input/SdlInputBridge.hpp— no ProcessEvent declaredmodules/input/include/CNA/Internal/Input/PlatformInputBridge.hpp— PlatformInputBridge::ProcessEvent, the single event funnel
Evidence
Checked by reading at 009d40f5; a search of the TARGET tree for UpdateInput finds only these two comments, a design sketch under misc/ and a plan entry. Not executed.
Independent re-verification: Checked by reading at 009d40f5; not executed. The removal of the SdlInputBridge::ProcessEvent declaration was located in git history (a440cca08, 2026-08-13), which did not touch input-backend.md. The comments naming Game::UpdateInput() in Sdl3Platform.cpp and X11Platform.cpp, first merged into this entry, are published as CNA-BUG-237 and are not repeated here.
Focused reproduction
No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.
Current tests
Not applicable: documentation.
Regression test
No behavioural test: rename the references to Game::PollEvents and PlatformInputBridge::ProcessEvent, and correct the paths.
Blast radius
Maintainers following the comments or docs/input-backend.md to the pump; no runtime effect.
Workaround
No workaround is known.
Related pages
The same subject is explained at several altitudes. These are the neighbouring pages at each one.
- Known issues
- Bug index