diff options
Diffstat (limited to 'Servers')
-rw-r--r-- | Servers/WindowServer/WSClientConnection.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Servers/WindowServer/WSClientConnection.cpp b/Servers/WindowServer/WSClientConnection.cpp index 1dd139fd5f..6f79207a4e 100644 --- a/Servers/WindowServer/WSClientConnection.cpp +++ b/Servers/WindowServer/WSClientConnection.cpp @@ -50,6 +50,10 @@ WSClientConnection::WSClientConnection(CLocalSocket& client_socket, int client_i WSClientConnection::~WSClientConnection() { + // NOTE: Move the windows out of 'm_windows' before teardown. This prevents code + // that runs in response to window destruction from trying to iterate over + // a partially destroyed window list. + auto windows = move(m_windows); s_connections->remove(client_id()); } |