[Bf-blender-cvs] [dbca0cc9d5c] master: Fix crash on exit under Wayland
Campbell Barton
noreply at git.blender.org
Tue Feb 7 05:15:37 CET 2023
Commit: dbca0cc9d5c8c87c12d2eba663aa22072379effc
Author: Campbell Barton
Date: Tue Feb 7 15:09:25 2023 +1100
Branches: master
https://developer.blender.org/rBdbca0cc9d5c8c87c12d2eba663aa22072379effc
Fix crash on exit under Wayland
Order of free error from [0] caused the timer manager
to be freed before the timer.
[0]: 7de1a4d1d81ffd4cd2e75d911426edc847267244
===================================================================
M intern/ghost/intern/GHOST_SystemWayland.cpp
===================================================================
diff --git a/intern/ghost/intern/GHOST_SystemWayland.cpp b/intern/ghost/intern/GHOST_SystemWayland.cpp
index 014f3d24bae..d3f32cf4450 100644
--- a/intern/ghost/intern/GHOST_SystemWayland.cpp
+++ b/intern/ghost/intern/GHOST_SystemWayland.cpp
@@ -975,9 +975,6 @@ static void gwl_display_destroy(GWL_Display *display)
ghost_wl_display_lock_without_input(display->wl_display, display->system->server_mutex);
display->events_pthread_is_active = false;
}
-
- delete display->ghost_timer_manager;
- display->ghost_timer_manager = nullptr;
#endif
/* For typical WAYLAND use this will always be set.
@@ -1015,6 +1012,11 @@ static void gwl_display_destroy(GWL_Display *display)
gwl_display_event_thread_destroy(display);
display->system->server_mutex->unlock();
}
+
+ /* Important to remove after the seats which may have key repeat timers active. */
+ delete display->ghost_timer_manager;
+ display->ghost_timer_manager = nullptr;
+
#endif /* USE_EVENT_BACKGROUND_THREAD */
if (display->wl_display) {
More information about the Bf-blender-cvs
mailing list