Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2009-05-29 19:12:31 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2009-05-29 19:12:31 +0400
commit688b7c73ad42148bfa946a195549c4fc6b38c266 (patch)
tree1208edf7df719a00a145e59b0a3b26f491a5d1a6 /source/blender/makesrna/intern/rna_define.c
parent10e8672c8de27769b9e6857cf9b7f2805ca837b2 (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.c11
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: {