diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-05-29 19:12:31 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-05-29 19:12:31 +0400 |
commit | 688b7c73ad42148bfa946a195549c4fc6b38c266 (patch) | |
tree | 1208edf7df719a00a145e59b0a3b26f491a5d1a6 /source/blender/makesrna/intern/rna_define.c | |
parent | 10e8672c8de27769b9e6857cf9b7f2805ca837b2 (diff) |
RNA:
* Added PROP_ID_REFCOUNT flag to control if refcounting should
be done on ID pointer properties. All ID pointers are refcounted,
by default, with the exception of Object, Scene and Text.
* Also made TextureFace image pointer editable, with the special
refcounting behavior.
Diffstat (limited to 'source/blender/makesrna/intern/rna_define.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_define.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/source/blender/makesrna/intern/rna_define.c b/source/blender/makesrna/intern/rna_define.c index 924a1c9158e..49c8c69fbcf 100644 --- a/source/blender/makesrna/intern/rna_define.c +++ b/source/blender/makesrna/intern/rna_define.c @@ -712,7 +712,12 @@ void RNA_def_struct_nested(BlenderRNA *brna, StructRNA *srna, const char *struct void RNA_def_struct_flag(StructRNA *srna, int flag) { - srna->flag= flag; + srna->flag |= flag; +} + +void RNA_def_struct_clear_flag(StructRNA *srna, int flag) +{ + srna->flag &= ~flag; } void RNA_def_struct_refine_func(StructRNA *srna, const char *refine) @@ -1059,6 +1064,10 @@ void RNA_def_property_struct_runtime(PropertyRNA *prop, StructRNA *type) case PROP_POINTER: { PointerPropertyRNA *pprop= (PointerPropertyRNA*)prop; pprop->type = type; + + if(type && (type->flag & STRUCT_ID_REFCOUNT)) + prop->flag |= PROP_ID_REFCOUNT; + break; } case PROP_COLLECTION: { |