Commit: 4ee8dfa8b30fbbb2d700e961f8c686199af39fe6
Author: Campbell Barton
Date: Tue May 3 14:50:40 2022 +1000
Branches: blender-v3.2-release
https://developer.blender.org/rB4ee8dfa8b30fbbb2d700e961f8c686199af39fe6
Fix use after free error when exiting a temp screen
Regression in [0] caused by checking the screen after event handling.
[0]: d4bdf2192964f786520c774d1a2ee44617302bc1
===================================================================
M source/blender/windowmanager/intern/wm_event_system.c
===================================================================
diff --git a/source/blender/windowmanager/intern/wm_event_system.c
b/source/blender/windowmanager/intern/wm_event_system.c
index 87588c40b57..1c3f7ed3e7a 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -1301,8 +1301,14 @@ static wmOperator *wm_operator_create(wmWindowManager
*wm,
* This isn't very nice but needed to redraw gizmos which are hidden while
tweaking,
* See #WM_GIZMOGROUPTYPE_DELAY_REFRESH_FOR_TWEAK for details.
*/
-static void wm_region_tag_draw_on_gizmo_delay_refresh_for_tweak(wmWindow *win,
bScreen *screen)
+static void wm_region_tag_draw_on_gizmo_delay_refresh_for_tweak(wmWindow *win)
{
+
+ bScreen *screen = WM_window_get_active_screen(win);
+ /* Unlikely but not impossible as this runs after events have been handled.
*/
+ if (UNLIKELY(screen == NULL)) {
+ return;
+ }
ED_screen_areas_iter (win, screen, area) {
LISTBASE_FOREACH (ARegion *, region, &area->regionbase) {
if (region->gizmo_map != NULL) {
@@ -3929,7 +3935,7 @@ void wm_event_do_handlers(bContext *C)
}
if (event_queue_check_drag_prev && (win->event_queue_check_drag ==
false)) {
- wm_region_tag_draw_on_gizmo_delay_refresh_for_tweak(win, screen);
+ wm_region_tag_draw_on_gizmo_delay_refresh_for_tweak(win);
}
/* Update previous mouse position for following events to use. */
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs