Revision: 38111
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38111
Author:   blendix
Date:     2011-07-05 08:57:11 +0000 (Tue, 05 Jul 2011)
Log Message:
-----------
Fix #27863: converting curve spline type from python crashes.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/curve/editcurve.c
    trunk/blender/source/blender/editors/include/ED_curve.h
    trunk/blender/source/blender/makesrna/intern/rna_curve.c
    trunk/blender/source/blenderplayer/bad_level_call_stubs/stubs.c

Modified: trunk/blender/source/blender/editors/curve/editcurve.c
===================================================================
--- trunk/blender/source/blender/editors/curve/editcurve.c      2011-07-05 
08:28:54 UTC (rev 38110)
+++ trunk/blender/source/blender/editors/curve/editcurve.c      2011-07-05 
08:57:11 UTC (rev 38111)
@@ -3535,6 +3535,11 @@
        return 0;
 }
 
+void ED_nurb_set_spline_type(Nurb *nu, int type)
+{
+       convertspline(type, nu);
+}
+
 static int set_spline_type_exec(bContext *C, wmOperator *op)
 {
        Object *obedit= CTX_data_edit_object(C);

Modified: trunk/blender/source/blender/editors/include/ED_curve.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_curve.h     2011-07-05 
08:28:54 UTC (rev 38110)
+++ trunk/blender/source/blender/editors/include/ED_curve.h     2011-07-05 
08:57:11 UTC (rev 38111)
@@ -71,6 +71,7 @@
 struct Nurb *add_nurbs_primitive(struct bContext *C, float mat[4][4], int 
type, int newob);
 
 int            isNurbsel               (struct Nurb *nu);
+void   ED_nurb_set_spline_type(struct Nurb *nu, int type);
 
 int            join_curve_exec (struct bContext *C, struct wmOperator *op);
 

Modified: trunk/blender/source/blender/makesrna/intern/rna_curve.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_curve.c    2011-07-05 
08:28:54 UTC (rev 38110)
+++ trunk/blender/source/blender/makesrna/intern/rna_curve.c    2011-07-05 
08:57:11 UTC (rev 38111)
@@ -281,8 +281,7 @@
 static void rna_Nurb_type_set(PointerRNA *ptr, int value)
 {
        Nurb *nu= (Nurb*)ptr->data;
-       nu->type = value;
-       // XXX - TODO change datatypes
+       ED_nurb_set_spline_type(nu, value);
 }
 
 static void rna_BPoint_array_begin(CollectionPropertyIterator *iter, 
PointerRNA *ptr)
@@ -1448,7 +1447,6 @@
        RNA_def_property_ui_text(prop, "Radius Interpolation", "The type of 
radius interpolation for Bezier curves");
        RNA_def_property_update(prop, 0, "rna_Curve_update_data");
 
-       // XXX - switching type probably needs comprehensive recalc of data 
like in 2.4x
        prop= RNA_def_property(srna, "type", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_items(prop, curve_type_items);
        RNA_def_property_enum_funcs(prop, NULL, "rna_Nurb_type_set", NULL);

Modified: trunk/blender/source/blenderplayer/bad_level_call_stubs/stubs.c
===================================================================
--- trunk/blender/source/blenderplayer/bad_level_call_stubs/stubs.c     
2011-07-05 08:28:54 UTC (rev 38110)
+++ trunk/blender/source/blenderplayer/bad_level_call_stubs/stubs.c     
2011-07-05 08:57:11 UTC (rev 38111)
@@ -68,6 +68,7 @@
 struct ModifierData;
 struct MultiresModifierData;
 struct NodeBlurData;
+struct Nurb;
 struct Object;
 struct PBVHNode;
 struct Render;
@@ -292,7 +293,8 @@
 void ED_space_image_size(struct SpaceImage *sima, int *width, int *height){}
 
 struct ListBase *ED_curve_editnurbs(struct Curve *cu){return NULL;}
-void free_curve_editNurb (struct Curve *cu){};
+void free_curve_editNurb (struct Curve *cu){}
+void ED_nurb_set_spline_type(struct Nurb *nu, int type){}
 
 void EM_selectmode_set(struct EditMesh *em){}
 int EM_texFaceCheck(struct EditMesh *em){return 0;}

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to