diff options
author | Bastien Montagne <bastien@blender.org> | 2020-06-26 19:08:12 +0300 |
---|---|---|
committer | Bastien Montagne <bastien@blender.org> | 2020-06-29 18:28:04 +0300 |
commit | 28f4e5cd6bc718d91d0f637c89bce4ce68671b71 (patch) | |
tree | d66ba3d00fcdbd700de13909cb22ac9f6983709f /source/blender/makesrna/intern/makesrna.c | |
parent | febb2351ad35c26e0102f2db655694151eab382d (diff) |
RNA: Add a way to prevent automatic addition of 'no ownership' flag for ID pointer properties.
Since makesrna runs after all properties have been defined, we have to
remember with a new internal flag when we explicitely disable the
'PROP_PTR_NO_OWNERSHIP' flag for a property.
Otherwise there was no way to do so for ID pointer properties...
Diffstat (limited to 'source/blender/makesrna/intern/makesrna.c')
-rw-r--r-- | source/blender/makesrna/intern/makesrna.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 6256fd47ade..59087df16dd 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -3770,7 +3770,8 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr /* XXX This systematically enforces that flag on ID pointers... * we'll probably have to revisit. :/ */ StructRNA *type = rna_find_struct((const char *)pprop->type); - if (type && (type->flag & STRUCT_ID)) { + if (type && (type->flag & STRUCT_ID) && + !(prop->flag_internal & PROP_INTERN_PTR_OWNERSHIP_FORCED)) { prop->flag |= PROP_PTR_NO_OWNERSHIP; } break; @@ -3781,7 +3782,8 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr /* XXX This systematically enforces that flag on ID pointers... * we'll probably have to revisit. :/ */ StructRNA *type = rna_find_struct((const char *)cprop->item_type); - if (type && (type->flag & STRUCT_ID)) { + if (type && (type->flag & STRUCT_ID) && + !(prop->flag_internal & PROP_INTERN_PTR_OWNERSHIP_FORCED)) { prop->flag |= PROP_PTR_NO_OWNERSHIP; } break; |