#2899·glfw

Wayland: 在 xkb 状态尚未初始化时,`glfwGetKeyName` 会发生内存泄漏

作者: sephirok创建于 2026年9月13日更新于 2026年9月13日

`glfwGetKeyName` 在 `glfwInit` 之后被认为是有效的(不需要窗口),并且在无法获取布局名称时应该返回 `NULL`。在 Wayland 中,如果合成器尚未发送键映射,则会发生段错误。`_glfwGetScancodeNameWayland` 调用了 `xkb_state_key_get_layout(_glfw.wl.xkb.state, keycode)`,没有进行 NULL 检查。`_glfw.wl.xkb.state` 仅在 `keyboardHandleKeymap` 中设置,该函数通常在第一个窗口存在之后才运行。X11 的等价函数已经退出: