[Bf-blender-cvs] [12ceea04344] master: Fix crash when clicking in window while Blender starts

Sybren A. Stüvel noreply at git.blender.org
Wed Jul 10 12:33:18 CEST 2019


Commit: 12ceea04344ac8267d391b57187ffd0aa336c3cb
Author: Sybren A. Stüvel
Date:   Wed Jul 10 12:32:10 2019 +0200
Branches: master
https://developer.blender.org/rB12ceea04344ac8267d391b57187ffd0aa336c3cb

Fix crash when clicking in window while Blender starts

A mouse click in the window will trigger the `VIEW3D_OT_cursor3d` operator
before the viewport is available. This causes a segfault in
`GPU_viewport_engines_data_validate()`.

Other callers of `WM_draw_region_get_viewport()` already check for `NULL`
being returned and handle it gracefully.

Reviewed By: jbakker, fclem

Differential Revision: https://developer.blender.org/D5216

===================================================================

M	source/blender/editors/space_view3d/view3d_draw.c

===================================================================

diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index 2e34ff7f9c1..eef36dae86a 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -804,7 +804,11 @@ void ED_view3d_draw_depth(Depsgraph *depsgraph, ARegion *ar, View3D *v3d, bool a
   GPU_depth_test(true);
 
   GPUViewport *viewport = WM_draw_region_get_viewport(ar, 0);
-  DRW_draw_depth_loop(depsgraph, ar, v3d, viewport);
+  /* When Blender is starting, a click event can trigger a depth test while the viewport is not
+   * yet available. */
+  if (viewport != NULL) {
+    DRW_draw_depth_loop(depsgraph, ar, v3d, viewport);
+  }
 
   if (rv3d->rflag & RV3D_CLIPPING) {
     ED_view3d_clipping_disable();



More information about the Bf-blender-cvs mailing list