[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38111] trunk/blender/source: Fix #27863: converting curve spline type from python crashes.

Brecht Van Lommel brechtvanlommel at pandora.be
Tue Jul 5 10:57:11 CEST 2011


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;}




More information about the Bf-blender-cvs mailing list