Jinoh Kang (@iamahuman) commented about server/thread.c:
set_error( STATUS_INVALID_PARAMETER ); else if (thread->state != TERMINATED) { - unsigned int ctx = CTX_NATIVE; - const context_t *context = &contexts[CTX_NATIVE]; - unsigned int flags = system_flags & context->flags; - unsigned int native_flags = context->flags & req->native_flags; + unsigned int flags = system_flags & contexts[CTX_NATIVE].flags;
if (thread != current) stop_thread( thread ); - else if (flags) set_thread_context( thread, context, flags ); + else if (contexts[CTX_NATIVE].flags) set_thread_context( thread, &contexts[CTX_NATIVE], flags );
```suggestion:-0+0 else if (flags) set_thread_context( thread, &contexts[CTX_NATIVE], flags ); ``` If `contexts[CTX_NATIVE].flags` was nonzero but `SERVER_CTX_DEBUG_REGISTERS` was unset, this will lead to an assertion failure. Guaranteed, such case doesn't happen in tests; however, consistenly using `flags` looks more readable. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/3566#note_43034