diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-04-24 23:21:18 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-04-24 23:21:18 +0400 |
commit | a0e03a6c77f19c042cbb7aea922d64404f2e35da (patch) | |
tree | 0328ee3fab08009b912558fee016bd052d1af066 | |
parent | ee6932aa89c85aca06505f8e77af8a9d4100fdde (diff) |
Fix cycles build error, RNA C++ API did not properly handle output parameters.
-rw-r--r-- | source/blender/makesrna/intern/makesrna.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index bcab2b6a58a..e3c7af7b487 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -1824,10 +1824,8 @@ static void rna_def_struct_function_prototype_cpp(FILE *f, StructRNA *UNUSED(srn pout = (flag & PROP_OUTPUT); if (type == PROP_POINTER) - ptrstr = ""; - else if ((type == PROP_POINTER) && (flag & PROP_RNAPTR) && !(flag & PROP_THICK_WRAP)) - ptrstr = "*"; - else if (type == PROP_POINTER || dp->prop->arraydimension) + ptrstr = pout ? "*": ""; + else if (dp->prop->arraydimension) ptrstr = "*"; else if (type == PROP_STRING && (flag & PROP_THICK_WRAP)) ptrstr = ""; @@ -2005,6 +2003,8 @@ static void rna_def_struct_function_call_impl_cpp(FILE *f, StructRNA *srna, Func if (dp->prop->type == PROP_POINTER) if ((dp->prop->flag & PROP_RNAPTR) && !(dp->prop->flag & PROP_THICK_WRAP)) fprintf(f, "(::%s *) &%s.ptr", rna_parameter_type_name(dp->prop), rna_safe_id(dp->prop->identifier)); + else if(dp->prop->flag & PROP_OUTPUT) + fprintf(f, "(::%s **) &%s->ptr.data", rna_parameter_type_name(dp->prop), rna_safe_id(dp->prop->identifier)); else fprintf(f, "(::%s *) %s.ptr.data", rna_parameter_type_name(dp->prop), rna_safe_id(dp->prop->identifier)); else |