Commit: ca99a59605e52e6b4ec759523b1403b2b7e33ee7
Author: Jacques Lucke
Date:   Thu Feb 2 17:20:57 2023 +0100
Branches: master
https://developer.blender.org/rBca99a59605e52e6b4ec759523b1403b2b7e33ee7

Fix T104261: crash when trying to draw viewer overlay for empty curve

`BKE_displist_make_curveTypes` only sets `curve_eval` if the final geometry
of the object actually contains curve data, otherwise it's null.

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

M       source/blender/draw/engines/overlay/overlay_viewer_attribute.cc

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

diff --git a/source/blender/draw/engines/overlay/overlay_viewer_attribute.cc 
b/source/blender/draw/engines/overlay/overlay_viewer_attribute.cc
index 69ff877c1e5..fe20fb135c5 100644
--- a/source/blender/draw/engines/overlay/overlay_viewer_attribute.cc
+++ b/source/blender/draw/engines/overlay/overlay_viewer_attribute.cc
@@ -131,11 +131,13 @@ static void populate_cache_for_geometry(Object &object,
     }
     case OB_CURVES_LEGACY: {
       Curve *curve = static_cast<Curve *>(object.data);
-      const bke::CurvesGeometry &curves = curve->curve_eval->geometry.wrap();
-      if (curves.attributes().contains(".viewer")) {
-        GPUBatch *batch = 
DRW_cache_curve_edge_wire_viewer_attribute_get(&object);
-        DRW_shgroup_uniform_float_copy(pd.viewer_attribute_curve_grp, 
"opacity", opacity);
-        DRW_shgroup_call_obmat(pd.viewer_attribute_curve_grp, batch, 
object.object_to_world);
+      if (curve->curve_eval) {
+        const bke::CurvesGeometry &curves = curve->curve_eval->geometry.wrap();
+        if (curves.attributes().contains(".viewer")) {
+          GPUBatch *batch = 
DRW_cache_curve_edge_wire_viewer_attribute_get(&object);
+          DRW_shgroup_uniform_float_copy(pd.viewer_attribute_curve_grp, 
"opacity", opacity);
+          DRW_shgroup_call_obmat(pd.viewer_attribute_curve_grp, batch, 
object.object_to_world);
+        }
       }
       break;
     }

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to