diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-09-06 18:59:55 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-09-06 18:59:55 +0400 |
commit | d4ce95d1dc9103c018b17f42872d231cece33383 (patch) | |
tree | 49b006f108618013d8c1bae09c626267fa119bb0 | |
parent | 0c15f834e49b2e1c43c0e06f1fd8a7e7f5faa83f (diff) |
Fix #28524: Push/Pull Assert when using Operator Panel to Alter Distance value
Some transform operators (like push/pull, shrink/fatten, to sphere and so)
were creating "value" as single scalar value. This used to confuse
RNA_float_get_array used in initTransform.
Use RNA_float_get_array for array values and RNA_float_get for scalar value
in transform initi function.
-rw-r--r-- | source/blender/editors/transform/transform.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 09507194969..1796bd4e928 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -1678,7 +1678,14 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int if (RNA_property_is_set(op->ptr, "value")) { float values[4]= {0}; /* incase value isn't length 4, avoid uninitialized memory */ - RNA_float_get_array(op->ptr, "value", values); + PropertyRNA *prop= RNA_struct_find_property(op->ptr, "value"); + + if(RNA_property_array_check(prop)) { + RNA_float_get_array(op->ptr, "value", values); + } else { + values[0]= RNA_float_get(op->ptr, "value"); + } + QUATCOPY(t->values, values); QUATCOPY(t->auto_values, values); t->flag |= T_AUTOVALUES; |