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:
authorSergey Sharybin <sergey.vfx@gmail.com>2010-03-30 18:33:05 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2010-03-30 18:33:05 +0400
commitd0f8d9f38cfffaa5117930f7724bddf3d4c68d72 (patch)
tree211a487cc3fdb1da345b9b88be50df6c4d72caee /source/blender/blenkernel/intern/displist.c
parent1902de715f15454a5abf6c7972f156d5c6288f9d (diff)
Fixed segmentation fault when non-curve object is setting as a taper
Deny user to select non-curve objects for taper and bevel lists, also added some checking into displist and curve modules - object could be converted from curve to mesh (would be better to unset bevel/taper object in this case -- will try to implement a bit later).
Diffstat (limited to 'source/blender/blenkernel/intern/displist.c')
-rw-r--r--source/blender/blenkernel/intern/displist.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c
index 29ee8aeab45..4defa0e53a1 100644
--- a/source/blender/blenkernel/intern/displist.c
+++ b/source/blender/blenkernel/intern/displist.c
@@ -1755,8 +1755,10 @@ static void do_makeDispListCurveTypes(Scene *scene, Object *ob, ListBase *dispba
bevp= (BevPoint *)(bl+1);
for(a=0; a<bl->nr; a++,bevp++) {
float fac=1.0;
- if (cu->taperobj==NULL) {
- if ( (cu->bevobj!=NULL) || !((cu->flag & CU_FRONT) || (cu->flag & CU_BACK)) )
+ if (cu->taperobj==NULL ||
+ cu->taperobj->type != OB_CURVE || cu->taperobj == ob) {
+ if ( (cu->bevobj!=NULL && cu->bevobj->type == OB_CURVE) ||
+ !((cu->flag & CU_FRONT) || (cu->flag & CU_BACK)) )
fac = bevp->radius;
} else {
fac = calc_taper(scene, cu->taperobj, a, bl->nr);