diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-05-21 13:34:11 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-05-21 13:34:11 +0300 |
commit | 882daeffc5f189e9278f8b6a9f66df77aae0f306 (patch) | |
tree | 181c8e34519a50a83dd3ee2c3781212f8e70d511 /source/blender/makesrna/intern | |
parent | 6d8aa8505115c03ab2a50489f23fe36dea8cd564 (diff) |
RNA: support for PARM_OUTPUT & PARM_RNAPTR
Diffstat (limited to 'source/blender/makesrna/intern')
-rw-r--r-- | source/blender/makesrna/intern/makesrna.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 94ae49c48c3..26ce24d5911 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -2092,8 +2092,16 @@ static void rna_def_struct_function_call_impl_cpp(FILE *f, StructRNA *srna, Func if (dp->prop->type == PROP_POINTER) if ((dp->prop->flag_parameter & PARM_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_parameter & PARM_OUTPUT) - fprintf(f, "(::%s **) &%s->ptr.data", rna_parameter_type_name(dp->prop), rna_safe_id(dp->prop->identifier)); + else if (dp->prop->flag_parameter & PARM_OUTPUT) { + if (dp->prop->flag_parameter & PARM_RNAPTR) { + fprintf(f, "&%s->ptr", + 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 fprintf(f, "(::%s *) %s.ptr.data", rna_parameter_type_name(dp->prop), rna_safe_id(dp->prop->identifier)); else |