diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-07-24 06:27:43 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-07-24 06:27:43 +0400 |
commit | 1fdb880cf4d746d8e4a1b6372c5b7e2c13025ff2 (patch) | |
tree | 91cae7fc75c2b58974d49d7728b4b68b074e141e /source | |
parent | f148aa696ef069fb58c4b817ee980d36449a0e85 (diff) |
bugfix [#22990] Crash rendering joined curves
- dont render invalid material indicies (like mesh faces)
- clamp the material index values when joining, TODO: merge material lists properly.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/curve/editcurve.c | 1 | ||||
-rw-r--r-- | source/blender/render/intern/source/convertblender.c | 5 |
2 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c index 659ee7b9cea..c33565cee4b 100644 --- a/source/blender/editors/curve/editcurve.c +++ b/source/blender/editors/curve/editcurve.c @@ -4843,6 +4843,7 @@ int join_curve_exec(bContext *C, wmOperator *op) nu= cu->nurb.first; while(nu) { newnu= duplicateNurb(nu); + CLAMP(newnu->mat_nr, 0, ob->totcol-1); /* TODO, merge material lists */ BLI_addtail(&tempbase, newnu); if( (bezt= newnu->bezt) ) { diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c index b2f526f0297..c5d69e69586 100644 --- a/source/blender/render/intern/source/convertblender.c +++ b/source/blender/render/intern/source/convertblender.c @@ -2848,7 +2848,10 @@ static void init_render_curve(Render *re, ObjectRen *obr, int timeoffset) } while(dl) { - if(dl->type==DL_INDEX3) { + if(dl->col > ob->totcol) { + /* pass */ + } + else if(dl->type==DL_INDEX3) { int *index; startvert= obr->totvert; |