Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2010-07-24 06:27:43 +0400
committerCampbell Barton <ideasman42@gmail.com>2010-07-24 06:27:43 +0400
commit1fdb880cf4d746d8e4a1b6372c5b7e2c13025ff2 (patch)
tree91cae7fc75c2b58974d49d7728b4b68b074e141e
parentf148aa696ef069fb58c4b817ee980d36449a0e85 (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.
-rw-r--r--source/blender/editors/curve/editcurve.c1
-rw-r--r--source/blender/render/intern/source/convertblender.c5
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;