[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59754] trunk/blender/source/blender: add checks for bad args to RNA_def_property_ui_range & RNA_def_property_range and fix one instance where (min > max).

Campbell Barton ideasman42 at gmail.com
Tue Sep 3 00:28:19 CEST 2013


Revision: 59754
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59754
Author:   campbellbarton
Date:     2013-09-02 22:28:18 +0000 (Mon, 02 Sep 2013)
Log Message:
-----------
add checks for bad args to RNA_def_property_ui_range & RNA_def_property_range and fix one instance where (min > max).
also remove redundant float/double conversion in ui_get_but_step_unit()

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface.c
    trunk/blender/source/blender/makesrna/intern/rna_define.c
    trunk/blender/source/blender/makesrna/intern/rna_modifier.c

Modified: trunk/blender/source/blender/editors/interface/interface.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface.c	2013-09-02 22:24:44 UTC (rev 59753)
+++ trunk/blender/source/blender/editors/interface/interface.c	2013-09-02 22:28:18 UTC (rev 59754)
@@ -1807,12 +1807,14 @@
 static float ui_get_but_step_unit(uiBut *but, float step_default)
 {
 	int unit_type = RNA_SUBTYPE_UNIT_VALUE(uiButGetUnitType(but));
-	float step;
+	double step;
 
 	step = bUnit_ClosestScalar(ui_get_but_scale_unit(but, step_default), but->block->unit->system, unit_type);
 
-	if (step > 0.0f) { /* -1 is an error value */
-		return (float)((double)step / ui_get_but_scale_unit(but, 1.0)) * 100.0f;
+	/* -1 is an error value */
+	if (step != -1.0) {
+		BLI_assert(step > 0.0);
+		return (float)(step / ui_get_but_scale_unit(but, 1.0)) * 100.0f;
 	}
 	else {
 		return step_default;

Modified: trunk/blender/source/blender/makesrna/intern/rna_define.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_define.c	2013-09-02 22:24:44 UTC (rev 59753)
+++ trunk/blender/source/blender/makesrna/intern/rna_define.c	2013-09-02 22:28:18 UTC (rev 59754)
@@ -1321,6 +1321,26 @@
 {
 	StructRNA *srna = DefRNA.laststruct;
 
+#ifdef DEBUG
+	if (min > max) {
+		fprintf(stderr, "%s: \"%s.%s\", min > max.\n",
+		        __func__, srna->identifier, prop->identifier);
+		DefRNA.error = 1;
+	}
+
+	if (step < 0 || step > 100) {
+		fprintf(stderr, "%s: \"%s.%s\", step outside range.\n",
+		        __func__, srna->identifier, prop->identifier);
+		DefRNA.error = 1;
+	}
+
+	if (precision < -1 || precision > 10) {
+		fprintf(stderr, "%s: \"%s.%s\", step outside range.\n",
+		        __func__, srna->identifier, prop->identifier);
+		DefRNA.error = 1;
+	}
+#endif
+
 	switch (prop->type) {
 		case PROP_INT:
 		{
@@ -1366,6 +1386,14 @@
 {
 	StructRNA *srna = DefRNA.laststruct;
 
+#ifdef DEBUG
+	if (min > max) {
+		fprintf(stderr, "%s: \"%s.%s\", min > max.\n",
+		        __func__, srna->identifier, prop->identifier);
+		DefRNA.error = 1;
+	}
+#endif
+
 	switch (prop->type) {
 		case PROP_INT:
 		{

Modified: trunk/blender/source/blender/makesrna/intern/rna_modifier.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_modifier.c	2013-09-02 22:24:44 UTC (rev 59753)
+++ trunk/blender/source/blender/makesrna/intern/rna_modifier.c	2013-09-02 22:28:18 UTC (rev 59754)
@@ -2781,7 +2781,7 @@
 	RNA_def_property_update(prop, 0, "rna_Modifier_update");
 
 	prop = RNA_def_property(srna, "angle", PROP_FLOAT, PROP_ANGLE);
-	RNA_def_property_ui_range(prop, 0, -M_PI * 2, M_PI * 2, 2);
+	RNA_def_property_ui_range(prop, -M_PI * 2, M_PI * 2, 2, -1);
 	RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
 	RNA_def_property_ui_text(prop, "Angle", "Angle of revolution");
 	RNA_def_property_update(prop, 0, "rna_Modifier_update");




More information about the Bf-blender-cvs mailing list