Fix T39635: Crash convening curve to mesh

This commit is contained in:
Campbell Barton 2014-04-08 07:28:14 +10:00
parent 3ab0a4da73
commit c61eb64f06
Notes: blender-bot 2023-02-14 10:49:43 +01:00
Referenced by issue #39635, Convert curve to mesh : Blender crash
3 changed files with 12 additions and 1 deletions

View File

@ -149,6 +149,7 @@ void BKE_nurb_knot_calc_v(struct Nurb *nu);
/* nurb checks if they can be drawn, also clamp order func */
bool BKE_nurb_check_valid_u(struct Nurb *nu);
bool BKE_nurb_check_valid_v(struct Nurb *nu);
bool BKE_nurb_check_valid_uv(struct Nurb *nu);
bool BKE_nurb_order_clamp_u(struct Nurb *nu);
bool BKE_nurb_order_clamp_v(struct Nurb *nu);

View File

@ -3801,6 +3801,16 @@ bool BKE_nurb_check_valid_v(struct Nurb *nu)
return true;
}
bool BKE_nurb_check_valid_uv(struct Nurb *nu)
{
if (!BKE_nurb_check_valid_u(nu))
return false;
if ((nu->pntsv > 1) && !BKE_nurb_check_valid_v(nu))
return false;
return true;
}
bool BKE_nurb_order_clamp_u(struct Nurb *nu)
{
bool changed = false;

View File

@ -1216,7 +1216,7 @@ void BKE_displist_make_surf(Scene *scene, Object *ob, ListBase *dispbase,
curve_calc_modifiers_pre(scene, ob, &nubase, for_render, use_render_resolution);
for (nu = nubase.first; nu; nu = nu->next) {
if (for_render || nu->hide == 0) {
if ((for_render || nu->hide == 0) && BKE_nurb_check_valid_uv(nu)) {
int resolu = nu->resolu, resolv = nu->resolv;
if (use_render_resolution) {