You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
x.multiwindow: fix AppKit window teardown SIGSEGV in headless Metal CI
The AppKit backend passed window records through nested calls as
`mut record &AppKitWindowRecord` (a mutable pointer-to-pointer that also
aliases the `mut backend` receiver, since the record lives inside
`backend.windows`). Re-passing that `mut &` parameter across
`release_window_resources` -> `release_window_drawable_lifetime` /
`prepare_window_native_destroy` corrupted the pointer: a valid record address
(e.g. 0x8ef0824c8) arrived in the callee as `3`, so reading
`record.active_drawable_ticket` faulted at 0x53 (SIGSEGV, exit 11, no output).
It surfaced in `multiwindow_buffer_cleanup_d_gg_multiwindow_test.v`'s
renderer-initialization-failure probe on macOS CI (`-d sokol_metal`), during
`app.stop()` teardown.
Pass the record as `mut record AppKitWindowRecord` (V's standard single
-indirection by-reference) instead of `mut record &AppKitWindowRecord`, and hand
the call sites `mut backend.windows[i]` directly rather than a `&` alias local.
Behaviour is unchanged; only the parameter indirection is fixed.
0 commit comments