Revision: 27670
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27670
Author: campbellbarton
Date: 2010-03-23 10:19:46 +0100 (Tue, 23 Mar 2010)
Log Message:
-----------
fix for parsing python args to rna functions, was using allocated size as
argument count.
Modified Paths:
--------------
branches/render25/source/blender/makesrna/RNA_access.h
branches/render25/source/blender/makesrna/RNA_types.h
branches/render25/source/blender/makesrna/intern/rna_access.c
branches/render25/source/blender/python/intern/bpy_rna.c
Modified: branches/render25/source/blender/makesrna/RNA_access.h
===================================================================
--- branches/render25/source/blender/makesrna/RNA_access.h 2010-03-23
01:22:33 UTC (rev 27669)
+++ branches/render25/source/blender/makesrna/RNA_access.h 2010-03-23
09:19:46 UTC (rev 27670)
@@ -891,6 +891,8 @@
ParameterList *RNA_parameter_list_create(ParameterList *parms, PointerRNA
*ptr, FunctionRNA *func);
void RNA_parameter_list_free(ParameterList *parms);
int RNA_parameter_list_size(ParameterList *parms);
+int RNA_parameter_list_arg_count(ParameterList *parms);
+int RNA_parameter_list_ret_count(ParameterList *parms);
void RNA_parameter_list_begin(ParameterList *parms, ParameterIterator *iter);
void RNA_parameter_list_next(ParameterIterator *iter);
Modified: branches/render25/source/blender/makesrna/RNA_types.h
===================================================================
--- branches/render25/source/blender/makesrna/RNA_types.h 2010-03-23
01:22:33 UTC (rev 27669)
+++ branches/render25/source/blender/makesrna/RNA_types.h 2010-03-23
09:19:46 UTC (rev 27670)
@@ -245,9 +245,11 @@
/* storage for parameters */
void *data;
- /* store the parameter count */
- int tot;
+ /* store the parameter size */
+ int alloc_size;
+ int arg_count, ret_count;
+
/* function passed at creation time */
struct FunctionRNA *func;
} ParameterList;
Modified: branches/render25/source/blender/makesrna/intern/rna_access.c
===================================================================
--- branches/render25/source/blender/makesrna/intern/rna_access.c
2010-03-23 01:22:33 UTC (rev 27669)
+++ branches/render25/source/blender/makesrna/intern/rna_access.c
2010-03-23 09:19:46 UTC (rev 27670)
@@ -3758,15 +3758,24 @@
{
PropertyRNA *parm;
void *data;
- int tot= 0, size;
+ int alloc_size= 0, size;
+ parms->arg_count= 0;
+ parms->ret_count= 0;
+
/* allocate data */
- for(parm= func->cont.properties.first; parm; parm= parm->next)
- tot+= rna_parameter_size_alloc(parm);
+ for(parm= func->cont.properties.first; parm; parm= parm->next) {
+ alloc_size += rna_parameter_size_alloc(parm);
- parms->data= MEM_callocN(tot, "RNA_parameter_list_create");
+ if(parm->flag & PROP_OUTPUT)
+ parms->ret_count++;
+ else
+ parms->arg_count++;
+ }
+
+ parms->data= MEM_callocN(alloc_size, "RNA_parameter_list_create");
parms->func= func;
- parms->tot= tot;
+ parms->alloc_size= alloc_size;
/* set default values */
data= parms->data;
@@ -3840,9 +3849,19 @@
int RNA_parameter_list_size(ParameterList *parms)
{
- return parms->tot;
+ return parms->alloc_size;
}
+int RNA_parameter_list_arg_count(ParameterList *parms)
+{
+ return parms->arg_count;
+}
+
+int RNA_parameter_list_ret_count(ParameterList *parms)
+{
+ return parms->ret_count;
+}
+
void RNA_parameter_list_begin(ParameterList *parms, ParameterIterator *iter)
{
PropertyType ptype;
Modified: branches/render25/source/blender/python/intern/bpy_rna.c
===================================================================
--- branches/render25/source/blender/python/intern/bpy_rna.c 2010-03-23
01:22:33 UTC (rev 27669)
+++ branches/render25/source/blender/python/intern/bpy_rna.c 2010-03-23
09:19:46 UTC (rev 27670)
@@ -2976,7 +2976,7 @@
RNA_parameter_list_create(&parms, self_ptr, self_func);
RNA_parameter_list_begin(&parms, &iter);
- parms_len= RNA_parameter_list_size(&parms);
+ parms_len= RNA_parameter_list_arg_count(&parms);
ret_len= 0;
if(pyargs_len + pykw_len > parms_len) {
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs