checks in rna range functions that the max value cant be less than the min.
authorCampbell Barton <ideasman42@gmail.com>
Thu, 23 Jun 2011 06:13:21 +0000 (06:13 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 23 Jun 2011 06:13:21 +0000 (06:13 +0000)
also fix for invalid rage for FILE_OT_filenum.

source/blender/editors/space_file/file_ops.c
source/blender/makesrna/intern/rna_access.c
source/blender/makesrna/intern/rna_curve.c
source/blender/makesrna/intern/rna_mesh.c
source/blender/makesrna/intern/rna_modifier.c
source/blender/makesrna/intern/rna_object.c
source/blender/makesrna/intern/rna_space.c

index 11e7040d4c9e172ca67f4d095932e68c33f14288..77524c7e117496d8a93404df1f6f6a2b5bacdfef 100644 (file)
@@ -1279,7 +1279,7 @@ void FILE_OT_filenum(struct wmOperatorType *ot)
        ot->poll= ED_operator_file_active; /* <- important, handler is on window level */
 
        /* props */
-       RNA_def_int(ot->srna, "increment", 1, 0, 100, "Increment", "", 0,100);
+       RNA_def_int(ot->srna, "increment", 1, -100, 100, "Increment", "", -100,100);
 }
 
 static int file_rename_exec(bContext *C, wmOperator *UNUSED(op))
index 8fbee8ea74068403f29c448e02ee521ed2dad7e3..e83161b8c624918915cd5cd50a500cfe6160aeee 100644 (file)
@@ -1603,6 +1603,8 @@ void RNA_property_int_set(PointerRNA *ptr, PropertyRNA *prop, int value)
        IDProperty *idprop;
 
        BLI_assert(RNA_property_type(prop) == PROP_INT);
+       /* useful to check on bad values but set function should clamp */
+       /* BLI_assert(RNA_property_int_clamp(ptr, prop, &value) == 0); */
 
        if((idprop=rna_idproperty_check(&prop, ptr)))
                IDP_Int(idprop)= value;
@@ -1825,6 +1827,8 @@ void RNA_property_float_set(PointerRNA *ptr, PropertyRNA *prop, float value)
        IDProperty *idprop;
 
        BLI_assert(RNA_property_type(prop) == PROP_FLOAT);
+       /* useful to check on bad values but set function should clamp */
+       /* BLI_assert(RNA_property_float_clamp(ptr, prop, &value) == 0); */
 
        if((idprop=rna_idproperty_check(&prop, ptr))) {
                if(idprop->type == IDP_FLOAT)
index df9071d7825d473b5279893ca95e6b089deb4880..594295ba817a4b18e0b52d64aeac227060c1b8d6 100644 (file)
@@ -233,6 +233,7 @@ static void rna_Curve_material_index_range(PointerRNA *ptr, int *min, int *max)
        Curve *cu= (Curve*)ptr->id.data;
        *min= 0;
        *max= cu->totcol-1;
+       *max= MAX2(0, *max);
 }
 
 static void rna_Curve_active_textbox_index_range(PointerRNA *ptr, int *min, int *max)
@@ -240,6 +241,7 @@ static void rna_Curve_active_textbox_index_range(PointerRNA *ptr, int *min, int
        Curve *cu= (Curve*)ptr->id.data;
        *min= 0;
        *max= cu->totbox-1;
+       *max= MAX2(0, *max);
 }
 
 
index 479e449958b539f13727049d2cdf18228e4bc786..80c98e8c428b5f9d83cacd925b923701d7861ddb 100644 (file)
@@ -305,6 +305,7 @@ static void rna_MeshFace_material_index_range(PointerRNA *ptr, int *min, int *ma
        Mesh *me= (Mesh*)ptr->id.data;
        *min= 0;
        *max= me->totcol-1;
+       *max= MAX2(0, *max);
 }
 
 static CustomData *rna_mesh_fdata(Mesh *me)
index ff277b6d9b0c6fa03f8be7df70ce81f419832d1f..d2c1b862fee48783571f112f9b8da0a1ec1514aa 100644 (file)
@@ -404,7 +404,8 @@ static void rna_MultiresModifier_level_range(PointerRNA *ptr, int *min, int *max
        MultiresModifierData *mmd = (MultiresModifierData*)ptr->data;
 
        *min = 0;
-       *max = mmd->totlvl;
+       *max = mmd->totlvl; /* intentionally _not_ -1 */
+       *max= MAX2(0, *max);
 }
 
 static int rna_MultiresModifier_external_get(PointerRNA *ptr)
index 8000427cb21ed376996f8077001fc87cbc69c490..6b925b42e066de41cb1a308e536374e1ad1cb351 100644 (file)
@@ -1024,8 +1024,13 @@ static void rna_Object_active_shape_key_index_range(PointerRNA *ptr, int *min, i
        Key *key= ob_get_key(ob);
 
        *min= 0;
-       *max= (key)? BLI_countlist(&key->block)-1: 0;
-       *max= MAX2(0, *max);
+       if(key) {
+               *max= BLI_countlist(&key->block)-1;
+               if(*max < 0) *max= 0;
+       }
+       else {
+               *max= 0;
+       }
 }
 
 static int rna_Object_active_shape_key_index_get(PointerRNA *ptr)
index 8ab480df4255de281fffac574414bf3f393f6a24..f4753e2efbe9bfa3836d3f62ffd96515a288919a 100644 (file)
@@ -700,7 +700,7 @@ static void rna_ConsoleLine_cursor_index_range(PointerRNA *ptr, int *min, int *m
        ConsoleLine *ci= (ConsoleLine*)ptr->data;
 
        *min= 0;
-       *max= ci->len;
+       *max= ci->len; /* intentionally _not_ -1 */
 }
 
 /* Space Dopesheet */