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/makesrna/intern/rna_curve.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/makesrna/intern/rna_curve.c')
-rw-r--r--source/blender/makesrna/intern/rna_curve.c28
1 files changed, 26 insertions, 2 deletions
diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c
index 39ca6351543..dbea28c31f6 100644
--- a/source/blender/makesrna/intern/rna_curve.c
+++ b/source/blender/makesrna/intern/rna_curve.c
@@ -216,6 +216,30 @@ static void rna_Curve_update_deps(Main *bmain, Scene *scene, PointerRNA *ptr)
rna_Curve_update_data(bmain, scene, ptr);
}
+static void rna_Curve_update_taper(Main *bmain, Scene *scene, PointerRNA *ptr)
+{
+ Curve *cu= (Curve*)ptr->id.data;
+ Object *obj= cu->taperobj;
+
+ if (obj && obj->type != OB_CURVE) {
+ cu->taperobj = NULL;
+ }
+
+ rna_Curve_update_deps(bmain, scene, ptr);
+}
+
+static void rna_Curve_update_bevel(Main *bmain, Scene *scene, PointerRNA *ptr)
+{
+ Curve *cu= (Curve*)ptr->id.data;
+ Object *obj= cu->bevobj;
+
+ if (obj && obj->type != OB_CURVE) {
+ cu->bevobj = NULL;
+ }
+
+ rna_Curve_update_deps(bmain, scene, ptr);
+}
+
static void rna_Curve_resolution_u_update_data(Main *bmain, Scene *scene, PointerRNA *ptr)
{
Curve *cu= (Curve*)ptr->id.data;
@@ -1036,13 +1060,13 @@ static void rna_def_curve(BlenderRNA *brna)
RNA_def_property_pointer_sdna(prop, NULL, "bevobj");
RNA_def_property_flag(prop, PROP_EDITABLE);
RNA_def_property_ui_text(prop, "Bevel Object", "Curve object name that defines the bevel shape");
- RNA_def_property_update(prop, 0, "rna_Curve_update_deps");
+ RNA_def_property_update(prop, 0, "rna_Curve_update_bevel");
prop= RNA_def_property(srna, "taper_object", PROP_POINTER, PROP_NONE);
RNA_def_property_pointer_sdna(prop, NULL, "taperobj");
RNA_def_property_flag(prop, PROP_EDITABLE);
RNA_def_property_ui_text(prop, "Taper Object", "Curve object name that defines the taper (width)");
- RNA_def_property_update(prop, 0, "rna_Curve_update_deps");
+ RNA_def_property_update(prop, 0, "rna_Curve_update_taper");
/* Flags */