RNA: support for PARM_OUTPUT & PARM_RNAPTR

This commit is contained in:
Campbell Barton 2018-05-21 12:34:11 +02:00
parent 6d8aa85051
commit 882daeffc5
1 changed files with 10 additions and 2 deletions

View File

@ -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