[Bf-blender-cvs] [63bdd89108f] master: Cleanup: use depsgraph iterator settings in rna

Jacques Lucke noreply at git.blender.org
Fri Sep 23 16:18:28 CEST 2022


Commit: 63bdd89108fe6557901be627b6d6ca4910648f40
Author: Jacques Lucke
Date:   Fri Sep 23 16:12:47 2022 +0200
Branches: master
https://developer.blender.org/rB63bdd89108fe6557901be627b6d6ca4910648f40

Cleanup: use depsgraph iterator settings in rna

Somehow missed this as part of rBb197cd5821f1dfaa5168d31984dd8014f5252456.

===================================================================

M	source/blender/makesrna/intern/rna_depsgraph.c

===================================================================

diff --git a/source/blender/makesrna/intern/rna_depsgraph.c b/source/blender/makesrna/intern/rna_depsgraph.c
index 239452c0572..eb39492c7dc 100644
--- a/source/blender/makesrna/intern/rna_depsgraph.c
+++ b/source/blender/makesrna/intern/rna_depsgraph.c
@@ -355,11 +355,16 @@ static void rna_Depsgraph_object_instances_begin(CollectionPropertyIterator *ite
 {
   RNA_Depsgraph_Instances_Iterator *di_it = iter->internal.custom = MEM_callocN(sizeof(*di_it),
                                                                                 __func__);
+  DEGObjectIterSettings *deg_iter_settings = MEM_callocN(sizeof(DEGObjectIterSettings), __func__);
+  deg_iter_settings->depsgraph = (Depsgraph *)ptr->data;
+  deg_iter_settings->flags = DEG_ITER_OBJECT_FLAG_LINKED_DIRECTLY |
+                             DEG_ITER_OBJECT_FLAG_LINKED_VIA_SET | DEG_ITER_OBJECT_FLAG_VISIBLE |
+                             DEG_ITER_OBJECT_FLAG_DUPLI;
 
   DEGObjectIterData *data = &di_it->deg_data[0];
-  data->graph = (Depsgraph *)ptr->data;
-  data->flag = DEG_ITER_OBJECT_FLAG_LINKED_DIRECTLY | DEG_ITER_OBJECT_FLAG_LINKED_VIA_SET |
-               DEG_ITER_OBJECT_FLAG_VISIBLE | DEG_ITER_OBJECT_FLAG_DUPLI;
+  data->settings = deg_iter_settings;
+  data->graph = deg_iter_settings->depsgraph;
+  data->flag = deg_iter_settings->flags;
 
   di_it->iterators[0].iter.valid = true;
   DEG_iterator_objects_begin(&di_it->iterators[0].iter, data);
@@ -398,6 +403,11 @@ static void rna_Depsgraph_object_instances_end(CollectionPropertyIterator *iter)
                                                 iter->internal.custom;
   for (int i = 0; i < ARRAY_SIZE(di_it->iterators); i++) {
     RNA_DepsgraphIterator *di = &di_it->iterators[i];
+    DEGObjectIterData *data = &di_it->deg_data[i];
+    if (i == 0) {
+      /* Is shared between both iterators. */
+      MEM_freeN(data->settings);
+    }
     DEG_iterator_objects_end(&di->iter);
 
 #  ifdef WITH_PYTHON



More information about the Bf-blender-cvs mailing list