Fix T61353: Crash converting a curve to a mesh
This was caused by curves pointing to each other creating a cyclic dependency. While the dependency graph detects this, generating a mesh for render recursively generates data which cashes in this case. Add in a check to detect cyclic links. Note, this bug exists in 2.7x too - but only crashes on render since 2.7x didn't use 'for_render' when converting data.
This commit is contained in:
@@ -27,6 +27,7 @@ struct Curve;
|
||||
struct Depsgraph;
|
||||
struct EditNurb;
|
||||
struct GHash;
|
||||
struct LinkNode;
|
||||
struct ListBase;
|
||||
struct Main;
|
||||
struct Nurb;
|
||||
@@ -119,7 +120,8 @@ void BKE_curve_bevelList_free(struct ListBase *bev);
|
||||
void BKE_curve_bevelList_make(struct Object *ob, struct ListBase *nurbs, bool for_render);
|
||||
void BKE_curve_bevel_make(
|
||||
struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, struct ListBase *disp,
|
||||
const bool for_render, const bool use_render_resolution);
|
||||
const bool for_render, const bool use_render_resolution,
|
||||
struct LinkNode *ob_cyclic_list);
|
||||
|
||||
void BKE_curve_forward_diff_bezier(float q0, float q1, float q2, float q3, float *p, int it, int stride);
|
||||
void BKE_curve_forward_diff_tangent_bezier(float q0, float q1, float q2, float q3, float *p, int it, int stride);
|
||||
|
||||
Reference in New Issue
Block a user