[Bf-blender-cvs] [4472a11017a] master: Fix: Crash with single point bezier spline auto handles

Hans Goudey noreply at git.blender.org
Tue Sep 21 03:20:48 CEST 2021


Commit: 4472a11017a0c48f77df26d990df2016f457058d
Author: Hans Goudey
Date:   Mon Sep 20 20:20:39 2021 -0500
Branches: master
https://developer.blender.org/rB4472a11017a0c48f77df26d990df2016f457058d

Fix: Crash with single point bezier spline auto handles

There's no way to calculate auto or vector handles when there is
only one point, and returning early allows avoiding checking for
that case later on.

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

M	source/blender/blenkernel/intern/spline_bezier.cc

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

diff --git a/source/blender/blenkernel/intern/spline_bezier.cc b/source/blender/blenkernel/intern/spline_bezier.cc
index 79d2137ee84..b36d7a21669 100644
--- a/source/blender/blenkernel/intern/spline_bezier.cc
+++ b/source/blender/blenkernel/intern/spline_bezier.cc
@@ -214,6 +214,11 @@ void BezierSpline::ensure_auto_handles() const
     return;
   }
 
+  if (this->size() == 1) {
+    auto_handles_dirty_ = false;
+    return;
+  }
+
   for (const int i : IndexRange(this->size())) {
     if (ELEM(HandleType::Auto, handle_types_left_[i], handle_types_right_[i])) {
       const float3 prev_diff = positions_[i] - previous_position(positions_, is_cyclic_, i);



More information about the Bf-blender-cvs mailing list