[Bf-blender-cvs] [ca99a59605e] master: Fix T104261: crash when trying to draw viewer overlay for empty curve

Jacques Lucke noreply at git.blender.org
Thu Feb 2 17:21:11 CET 2023


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;
     }



More information about the Bf-blender-cvs mailing list