[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45042] trunk/blender/source/blender/ editors: disable re-using 'number_cuts' setting on operators, problem was that you could subdiv a plane many times but then go to subdivide a high poly mesh and it would start with really high subdiv value (possibly running out of ram and crashing).

Campbell Barton ideasman42 at gmail.com
Tue Mar 20 23:27:17 CET 2012


Revision: 45042
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45042
Author:   campbellbarton
Date:     2012-03-20 22:27:08 +0000 (Tue, 20 Mar 2012)
Log Message:
-----------
disable re-using 'number_cuts' setting on operators, problem was that you could subdiv a plane many times but then go to subdivide a high poly mesh and it would start with really high subdiv value (possibly running out of ram and crashing).

Modified Paths:
--------------
    trunk/blender/source/blender/editors/armature/editarmature.c
    trunk/blender/source/blender/editors/curve/editcurve.c
    trunk/blender/source/blender/editors/mesh/bmesh_tools.c
    trunk/blender/source/blender/editors/mesh/loopcut.c

Modified: trunk/blender/source/blender/editors/armature/editarmature.c
===================================================================
--- trunk/blender/source/blender/editors/armature/editarmature.c	2012-03-20 22:00:21 UTC (rev 45041)
+++ trunk/blender/source/blender/editors/armature/editarmature.c	2012-03-20 22:27:08 UTC (rev 45042)
@@ -3584,6 +3584,8 @@
 
 void ARMATURE_OT_subdivide(wmOperatorType *ot)
 {
+	PropertyRNA *prop;
+
 	/* identifiers */
 	ot->name= "Subdivide Multi";
 	ot->idname= "ARMATURE_OT_subdivide";
@@ -3597,7 +3599,9 @@
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 	
 	/* Properties */
-	RNA_def_int(ot->srna, "number_cuts", 1, 1, INT_MAX, "Number of Cuts", "", 1, 10);
+	prop = RNA_def_int(ot->srna, "number_cuts", 1, 1, INT_MAX, "Number of Cuts", "", 1, 10);
+	/* avoid re-using last var because it can cause _very_ high poly meshes and annoy users (or worse crash) */
+	RNA_def_property_flag(prop, PROP_SKIP_SAVE);
 }
 
 /* ----------- */

Modified: trunk/blender/source/blender/editors/curve/editcurve.c
===================================================================
--- trunk/blender/source/blender/editors/curve/editcurve.c	2012-03-20 22:00:21 UTC (rev 45041)
+++ trunk/blender/source/blender/editors/curve/editcurve.c	2012-03-20 22:27:08 UTC (rev 45042)
@@ -3171,6 +3171,8 @@
 
 void CURVE_OT_subdivide(wmOperatorType *ot)
 {
+	PropertyRNA *prop;
+
 	/* identifiers */
 	ot->name= "Subdivide";
 	ot->description= "Subdivide selected segments";
@@ -3183,7 +3185,9 @@
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 
-	RNA_def_int(ot->srna, "number_cuts", 1, 1, INT_MAX, "Number of cuts", "", 1, 10);
+	prop = RNA_def_int(ot->srna, "number_cuts", 1, 1, INT_MAX, "Number of cuts", "", 1, 10);
+	/* avoid re-using last var because it can cause _very_ high poly meshes and annoy users (or worse crash) */
+	RNA_def_property_flag(prop, PROP_SKIP_SAVE);
 }
 
 /******************** find nearest ************************/

Modified: trunk/blender/source/blender/editors/mesh/bmesh_tools.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/bmesh_tools.c	2012-03-20 22:00:21 UTC (rev 45041)
+++ trunk/blender/source/blender/editors/mesh/bmesh_tools.c	2012-03-20 22:27:08 UTC (rev 45042)
@@ -120,6 +120,8 @@
 
 void MESH_OT_subdivide(wmOperatorType *ot)
 {
+	PropertyRNA *prop;
+
 	/* identifiers */
 	ot->name = "Subdivide";
 	ot->description = "Subdivide selected edges";
@@ -133,7 +135,10 @@
 	ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
 
 	/* properties */
-	RNA_def_int(ot->srna, "number_cuts", 1, 1, INT_MAX, "Number of Cuts", "", 1, 10);
+	prop = RNA_def_int(ot->srna, "number_cuts", 1, 1, INT_MAX, "Number of Cuts", "", 1, 10);
+	/* avoid re-using last var because it can cause _very_ high poly meshes and annoy users (or worse crash) */
+	RNA_def_property_flag(prop, PROP_SKIP_SAVE);
+
 	/* BMESH_TODO, this currently does nothing, just add to stop UI from erroring out! */
 	RNA_def_float(ot->srna, "smoothness", 0.0f, 0.0f, FLT_MAX, "Smoothness", "Smoothness factor (BMESH TODO)", 0.0f, 1.0f);
 
@@ -1240,6 +1245,8 @@
 
 void MESH_OT_edge_split(wmOperatorType *ot)
 {
+	PropertyRNA *prop;
+
 	/* identifiers */
 	ot->name = "Edge Split";
 	ot->idname = "MESH_OT_edge_split";
@@ -1251,7 +1258,10 @@
 	/* flags */
 	ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
 
-	RNA_def_int(ot->srna, "number_cuts", 1, 1, 10, "Number of Cuts", "", 1, INT_MAX);
+	prop = RNA_def_int(ot->srna, "number_cuts", 1, 1, 10, "Number of Cuts", "", 1, INT_MAX);
+
+	/* avoid re-using last var because it can cause _very_ high poly meshes and annoy users (or worse crash) */
+	RNA_def_property_flag(prop, PROP_SKIP_SAVE);
 }
 
 /****************** add duplicate operator ***************/

Modified: trunk/blender/source/blender/editors/mesh/loopcut.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/loopcut.c	2012-03-20 22:00:21 UTC (rev 45041)
+++ trunk/blender/source/blender/editors/mesh/loopcut.c	2012-03-20 22:27:08 UTC (rev 45042)
@@ -564,6 +564,8 @@
 
 void MESH_OT_loopcut (wmOperatorType *ot)
 {
+	PropertyRNA *prop;
+
 	/* description */
 	ot->name= "Loop Cut";
 	ot->idname= "MESH_OT_loopcut";
@@ -579,5 +581,7 @@
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING;
 
 	/* properties */
-	RNA_def_int(ot->srna, "number_cuts", 1, 1, INT_MAX, "Number of Cuts", "", 1, 10);
+	prop = RNA_def_int(ot->srna, "number_cuts", 1, 1, INT_MAX, "Number of Cuts", "", 1, 10);
+	/* avoid re-using last var because it can cause _very_ high poly meshes and annoy users (or worse crash) */
+	RNA_def_property_flag(prop, PROP_SKIP_SAVE);
 }




More information about the Bf-blender-cvs mailing list