[Bf-blender-cvs] [2ce0686] depsgraph_cleanup: Depsgraph: Remove DEPSNODE_RELATIONS_ITER helper

Sergey Sharybin noreply at git.blender.org
Thu May 26 10:02:23 CEST 2016


Commit: 2ce068678d5bc19445fadad7454b687e2472958a
Author: Sergey Sharybin
Date:   Wed May 25 14:34:03 2016 +0200
Branches: depsgraph_cleanup
https://developer.blender.org/rB2ce068678d5bc19445fadad7454b687e2472958a

Depsgraph: Remove DEPSNODE_RELATIONS_ITER helper

It was only used in read-only cases only where foreach() makes code shorter.

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

M	source/blender/depsgraph/intern/depsgraph.h
M	source/blender/depsgraph/intern/depsgraph_build_relations.cc
M	source/blender/depsgraph/intern/depsgraph_debug.cc
M	source/blender/depsgraph/intern/depsgraph_eval.cc
M	source/blender/depsgraph/intern/depsgraph_query.cc
M	source/blender/depsgraph/intern/depsnode.cc

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

diff --git a/source/blender/depsgraph/intern/depsgraph.h b/source/blender/depsgraph/intern/depsgraph.h
index 9533fbd..424142c 100644
--- a/source/blender/depsgraph/intern/depsgraph.h
+++ b/source/blender/depsgraph/intern/depsgraph.h
@@ -198,27 +198,4 @@ struct Depsgraph {
 	// XXX: additional stuff like eval contexts, mempools for allocating nodes from, etc.
 };
 
-/**
- * Helper macros for iterating over set of relationship links
- * incident on each node.
- *
- * \note it is safe to perform removal operations here...
- *
- * relations_set[in]: (DepsNode::Relations) set of relationships (in/out links)
- * relation[out]:  (DepsRelation *) identifier where DepsRelation that we're
- *              currently accessing comes up
- */
-#define DEPSNODE_RELATIONS_ITER_BEGIN(relations_set_, relation_) \
-	{ \
-		OperationDepsNode::Relations::const_iterator __rel_iter = relations_set_.begin();  \
-		while (__rel_iter != relations_set_.end()) { \
-			DepsRelation *relation_ = *__rel_iter; \
-			++__rel_iter; \
-
-			/* ... code for iterator body can be written here ... */
-
-#define DEPSNODE_RELATIONS_ITER_END \
-		} \
-	} ((void)0)
-
 #endif  /* __DEPSGRAPH_H__ */
diff --git a/source/blender/depsgraph/intern/depsgraph_build_relations.cc b/source/blender/depsgraph/intern/depsgraph_build_relations.cc
index 126b34c..56670cb 100644
--- a/source/blender/depsgraph/intern/depsgraph_build_relations.cc
+++ b/source/blender/depsgraph/intern/depsgraph_build_relations.cc
@@ -101,6 +101,7 @@ extern "C" {
 #include "depsgraph_intern.h"
 #include "depsgraph_types.h"
 
+#include "depsgraph_util_foreach.h"
 #include "depsgraph_util_pchanmap.h"
 
 /* ***************** */
@@ -786,8 +787,7 @@ void DepsgraphRelationBuilder::build_driver(ID *id, FCurve *fcu)
 
 		if (arm_node && bone_name) {
 			/* find objects which use this, and make their eval callbacks depend on this */
-			DEPSNODE_RELATIONS_ITER_BEGIN(arm_node->outlinks, rel)
-			{
+			foreach (DepsRelation *rel, arm_node->outlinks) {
 				IDDepsNode *to_node = (IDDepsNode *)rel->to;
 
 				/* we only care about objects with pose data which use this... */
@@ -801,7 +801,6 @@ void DepsgraphRelationBuilder::build_driver(ID *id, FCurve *fcu)
 					}
 				}
 			}
-			DEPSNODE_RELATIONS_ITER_END;
 
 			/* free temp data */
 			MEM_freeN(bone_name);
diff --git a/source/blender/depsgraph/intern/depsgraph_debug.cc b/source/blender/depsgraph/intern/depsgraph_debug.cc
index 5d21eff..8f21065 100644
--- a/source/blender/depsgraph/intern/depsgraph_debug.cc
+++ b/source/blender/depsgraph/intern/depsgraph_debug.cc
@@ -598,8 +598,7 @@ static bool deg_debug_graphviz_is_owner(const DepsNode *node,
 static void deg_debug_graphviz_node_relations(const DebugContext &ctx,
                                               const DepsNode *node)
 {
-	DEPSNODE_RELATIONS_ITER_BEGIN(node->inlinks, rel)
-	{
+	foreach (DepsRelation *rel, node->inlinks) {
 		float penwidth = 2.0f;
 		
 		const DepsNode *tail = rel->to; /* same as node */
@@ -639,7 +638,6 @@ static void deg_debug_graphviz_node_relations(const DebugContext &ctx,
 		deg_debug_fprintf(ctx, "];" NL);
 		deg_debug_fprintf(ctx, NL);
 	}
-	DEPSNODE_RELATIONS_ITER_END;
 
 #if 0
 	if (node->tclass == DEPSNODE_CLASS_COMPONENT) {
diff --git a/source/blender/depsgraph/intern/depsgraph_eval.cc b/source/blender/depsgraph/intern/depsgraph_eval.cc
index e584e8a..5d56487 100644
--- a/source/blender/depsgraph/intern/depsgraph_eval.cc
+++ b/source/blender/depsgraph/intern/depsgraph_eval.cc
@@ -261,8 +261,7 @@ static void calculate_pending_func(void *data_v, int i)
 	if ((id_node->layers & layers) != 0 &&
 	    (node->flag & DEPSOP_FLAG_NEEDS_UPDATE) != 0)
 	{
-		DEPSNODE_RELATIONS_ITER_BEGIN(node->inlinks, rel)
-		{
+		foreach (DepsRelation *rel, node->inlinks) {
 			if (rel->from->type == DEPSNODE_TYPE_OPERATION &&
 			    (rel->flag & DEPSREL_FLAG_CYCLIC) == 0)
 			{
@@ -275,7 +274,6 @@ static void calculate_pending_func(void *data_v, int i)
 				}
 			}
 		}
-		DEPSNODE_RELATIONS_ITER_END;
 	}
 }
 
@@ -370,8 +368,7 @@ static void schedule_children(TaskPool *pool,
                               const int layers,
                               const int thread_id)
 {
-	DEPSNODE_RELATIONS_ITER_BEGIN(node->outlinks, rel)
-	{
+	foreach (DepsRelation *rel, node->outlinks) {
 		OperationDepsNode *child = (OperationDepsNode *)rel->to;
 		BLI_assert(child->type == DEPSNODE_TYPE_OPERATION);
 		if (child->scheduled) {
@@ -380,7 +377,6 @@ static void schedule_children(TaskPool *pool,
 		}
 		schedule_node(pool, graph, layers, child, (rel->flag & DEPSREL_FLAG_CYCLIC) == 0, thread_id);
 	}
-	DEPSNODE_RELATIONS_ITER_END;
 }
 
 /**
diff --git a/source/blender/depsgraph/intern/depsgraph_query.cc b/source/blender/depsgraph/intern/depsgraph_query.cc
index 7319374..7aabd21 100644
--- a/source/blender/depsgraph/intern/depsgraph_query.cc
+++ b/source/blender/depsgraph/intern/depsgraph_query.cc
@@ -85,8 +85,7 @@ void DEG_graph_traverse_from_node(Depsgraph *graph, OperationDepsNode *start_nod
 		op(graph, node, operation_data);
 
 		/* schedule up operations which depend on this */
-		DEPSNODE_RELATIONS_ITER_BEGIN(node->outlinks, rel)
-		{
+		foreach (DepsRelation *rel, node->outlinks) {
 			/* ensure that relationship is not tagged for ignoring (i.e. cyclic, etc.) */
 			// TODO: cyclic refs should probably all get clustered towards the end, so that we can just stop on the first one
 			if ((rel->flag & DEPSREL_FLAG_CYCLIC) == 0) {
@@ -100,7 +99,6 @@ void DEG_graph_traverse_from_node(Depsgraph *graph, OperationDepsNode *start_nod
 				}
 			}
 		}
-		DEPSNODE_RELATIONS_ITER_END;
 	} while (DEG_queue_is_empty(q) == false);
 
 	/* cleanup */
diff --git a/source/blender/depsgraph/intern/depsnode.cc b/source/blender/depsgraph/intern/depsnode.cc
index ca9a7d9..1e7e3cd 100644
--- a/source/blender/depsgraph/intern/depsnode.cc
+++ b/source/blender/depsgraph/intern/depsnode.cc
@@ -77,11 +77,9 @@ DepsNode::~DepsNode()
 	 * when we're trying to free same link from both it's sides. We don't have
 	 * dangling links so this is not a problem from memory leaks point of view.
 	 */
-	DEPSNODE_RELATIONS_ITER_BEGIN(this->inlinks, rel)
-	{
+	foreach (DepsRelation *rel, inlinks) {
 		OBJECT_GUARDED_DELETE(rel, DepsRelation);
 	}
-	DEPSNODE_RELATIONS_ITER_END;
 }




More information about the Bf-blender-cvs mailing list