Fix T95620: Crash When Entering Edit Mode on a Curve

Under some circumstances, simply adding a curve object and going
to edit mode would cause a crash. This is because the evaluated
`CurveEval` was accessed but also freed by the dependency graph.

The fix reverts the part of b76918717d that uses the
`CurveEval` for the curve object bounds. While this isn't ideal,
it was the previous behavior, and some unexpected behavior
with object bounds is much better than a crash. Plus, given the plans
of using the new "Curves" data-block for evaluated curves, this
situation will change relatively soon anyway.
This commit is contained in:
Hans Goudey 2022-02-09 11:06:10 -06:00
parent c69ee218d7
commit d1202bd641
Notes: blender-bot 2023-03-28 21:33:56 +02:00
Referenced by issue #95728, Previous render slots get overwritten with the latest render
Referenced by issue #95725, Changing render slot doesn't update displayed image
Referenced by issue #95620, Crash When Entering Edit Mode on a Curve
Referenced by issue #106064, Frame Selected does not respect GN output if it has different type from input
1 changed files with 0 additions and 10 deletions

View File

@ -5072,16 +5072,6 @@ void BKE_curve_nurb_vert_active_validate(Curve *cu)
bool BKE_curve_minmax(Curve *cu, bool use_radius, float min[3], float max[3])
{
if (cu->curve_eval != nullptr) {
float3 eval_min(FLT_MAX);
float3 eval_max(-FLT_MAX);
if (cu->curve_eval->bounds_min_max(eval_min, eval_max, false)) {
copy_v3_v3(min, eval_min);
copy_v3_v3(max, eval_max);
return true;
}
}
ListBase *nurb_lb = BKE_curve_nurbs_get(cu);
ListBase temp_nurb_lb = {nullptr, nullptr};
const bool is_font = (BLI_listbase_is_empty(nurb_lb)) && (cu->len != 0);