[Bf-blender-cvs] [9b1f726248a] master: Cleanup: general cleanup of node.c

Jacques Lucke noreply at git.blender.org
Wed Sep 2 18:29:21 CEST 2020


Commit: 9b1f726248afcbc415846526a03acbd92d3235d0
Author: Jacques Lucke
Date:   Wed Sep 2 18:28:04 2020 +0200
Branches: master
https://developer.blender.org/rB9b1f726248afcbc415846526a03acbd92d3235d0

Cleanup: general cleanup of node.c

- reduce variable scope
- use bool instead of int
- use LISTBASE_FOREACH

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

M	source/blender/blenkernel/BKE_node.h
M	source/blender/blenkernel/intern/node.c

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

diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h
index ef46bc0f202..91e3b85aaca 100644
--- a/source/blender/blenkernel/BKE_node.h
+++ b/source/blender/blenkernel/BKE_node.h
@@ -446,8 +446,8 @@ void ntreeSetOutput(struct bNodeTree *ntree);
 
 void ntreeFreeCache(struct bNodeTree *ntree);
 
-int ntreeNodeExists(struct bNodeTree *ntree, struct bNode *testnode);
-int ntreeOutputExists(struct bNode *node, struct bNodeSocket *testsock);
+bool ntreeNodeExists(struct bNodeTree *ntree, struct bNode *testnode);
+bool ntreeOutputExists(struct bNode *node, struct bNodeSocket *testsock);
 void ntreeNodeFlagSet(const bNodeTree *ntree, const int flag, const bool enable);
 struct bNodeTree *ntreeLocalize(struct bNodeTree *ntree);
 void ntreeLocalSync(struct bNodeTree *localtree, struct bNodeTree *ntree);
@@ -618,10 +618,10 @@ void nodePositionRelative(struct bNode *from_node,
 void nodePositionPropagate(struct bNode *node);
 
 struct bNode *nodeFindNodebyName(struct bNodeTree *ntree, const char *name);
-int nodeFindNode(struct bNodeTree *ntree,
-                 struct bNodeSocket *sock,
-                 struct bNode **nodep,
-                 int *sockindex);
+bool nodeFindNode(struct bNodeTree *ntree,
+                  struct bNodeSocket *sock,
+                  struct bNode **r_node,
+                  int *r_sockindex);
 struct bNode *nodeFindRootParent(bNode *node);
 
 bool nodeIsChildOf(const bNode *parent, const bNode *child);
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c
index 499e2311297..900817a0513 100644
--- a/source/blender/blenkernel/intern/node.c
+++ b/source/blender/blenkernel/intern/node.c
@@ -648,10 +648,8 @@ GHashIterator *ntreeTypeGetIterator(void)
 
 bNodeType *nodeTypeFind(const char *idname)
 {
-  bNodeType *nt;
-
   if (idname[0]) {
-    nt = BLI_ghash_lookup(nodetypes_hash, idname);
+    bNodeType *nt = BLI_ghash_lookup(nodetypes_hash, idname);
     if (nt) {
       return nt;
     }
@@ -722,10 +720,8 @@ GHashIterator *nodeTypeGetIterator(void)
 
 bNodeSocketType *nodeSocketTypeFind(const char *idname)
 {
-  bNodeSocketType *st;
-
   if (idname[0]) {
-    st = BLI_ghash_lookup(nodesockettypes_hash, idname);
+    bNodeSocketType *st = BLI_ghash_lookup(nodesockettypes_hash, idname);
     if (st) {
       return st;
     }
@@ -772,8 +768,8 @@ GHashIterator *nodeSocketTypeGetIterator(void)
 
 struct bNodeSocket *nodeFindSocket(const bNode *node, int in_out, const char *identifier)
 {
-  bNodeSocket *sock = (in_out == SOCK_IN ? node->inputs.first : node->outputs.first);
-  for (; sock; sock = sock->next) {
+  const ListBase *sockets = (in_out == SOCK_IN) ? &node->inputs : &node->outputs;
+  LISTBASE_FOREACH (bNodeSocket *, sock, sockets) {
     if (STREQ(sock->identifier, identifier)) {
       return sock;
     }
@@ -785,8 +781,7 @@ struct bNodeSocket *nodeFindSocket(const bNode *node, int in_out, const char *id
 static bool unique_identifier_check(void *arg, const char *identifier)
 {
   struct ListBase *lb = arg;
-  bNodeSocket *sock;
-  for (sock = lb->first; sock; sock = sock->next) {
+  LISTBASE_FOREACH (bNodeSocket *, sock, lb) {
     if (STREQ(sock->identifier, identifier)) {
       return true;
     }
@@ -802,7 +797,6 @@ static bNodeSocket *make_socket(bNodeTree *ntree,
                                 const char *identifier,
                                 const char *name)
 {
-  bNodeSocket *sock;
   char auto_identifier[MAX_NAME];
 
   if (identifier && identifier[0] != '\0') {
@@ -817,7 +811,7 @@ static bNodeSocket *make_socket(bNodeTree *ntree,
   BLI_uniquename_cb(
       unique_identifier_check, lb, "socket", '.', auto_identifier, sizeof(auto_identifier));
 
-  sock = MEM_callocN(sizeof(bNodeSocket), "sock");
+  bNodeSocket *sock = MEM_callocN(sizeof(bNodeSocket), "sock");
   sock->in_out = in_out;
 
   BLI_strncpy(sock->identifier, auto_identifier, NODE_MAXSTR);
@@ -1111,14 +1105,13 @@ bNodeSocket *nodeAddStaticSocket(bNodeTree *ntree,
                                  const char *name)
 {
   const char *idname = nodeStaticSocketType(type, subtype);
-  bNodeSocket *sock;
 
   if (!idname) {
     CLOG_ERROR(&LOG, "static node socket type %d undefined", type);
     return NULL;
   }
 
-  sock = nodeAddSocket(ntree, node, in_out, idname, identifier, name);
+  bNodeSocket *sock = nodeAddSocket(ntree, node, in_out, idname, identifier, name);
   sock->type = type;
   return sock;
 }
@@ -1133,14 +1126,13 @@ bNodeSocket *nodeInsertStaticSocket(bNodeTree *ntree,
                                     const char *name)
 {
   const char *idname = nodeStaticSocketType(type, subtype);
-  bNodeSocket *sock;
 
   if (!idname) {
     CLOG_ERROR(&LOG, "static node socket type %d undefined", type);
     return NULL;
   }
 
-  sock = nodeInsertSocket(ntree, node, in_out, idname, next_sock, identifier, name);
+  bNodeSocket *sock = nodeInsertSocket(ntree, node, in_out, idname, next_sock, identifier, name);
   sock->type = type;
   return sock;
 }
@@ -1165,10 +1157,7 @@ static void node_socket_free(bNodeTree *UNUSED(ntree),
 
 void nodeRemoveSocket(bNodeTree *ntree, bNode *node, bNodeSocket *sock)
 {
-  bNodeLink *link, *next;
-
-  for (link = ntree->links.first; link; link = next) {
-    next = link->next;
+  LISTBASE_FOREACH_MUTABLE (bNodeLink *, link, &ntree->links) {
     if (link->fromsock == sock || link->tosock == sock) {
       nodeRemLink(ntree, link);
     }
@@ -1186,25 +1175,19 @@ void nodeRemoveSocket(bNodeTree *ntree, bNode *node, bNodeSocket *sock)
 
 void nodeRemoveAllSockets(bNodeTree *ntree, bNode *node)
 {
-  bNodeSocket *sock, *sock_next;
-  bNodeLink *link, *next;
-
-  for (link = ntree->links.first; link; link = next) {
-    next = link->next;
+  LISTBASE_FOREACH_MUTABLE (bNodeLink *, link, &ntree->links) {
     if (link->fromnode == node || link->tonode == node) {
       nodeRemLink(ntree, link);
     }
   }
 
-  for (sock = node->inputs.first; sock; sock = sock_next) {
-    sock_next = sock->next;
+  LISTBASE_FOREACH_MUTABLE (bNodeSocket *, sock, &node->inputs) {
     node_socket_free(ntree, sock, node, true);
     MEM_freeN(sock);
   }
   BLI_listbase_clear(&node->inputs);
 
-  for (sock = node->outputs.first; sock; sock = sock_next) {
-    sock_next = sock->next;
+  LISTBASE_FOREACH_MUTABLE (bNodeSocket *, sock, &node->outputs) {
     node_socket_free(ntree, sock, node, true);
     MEM_freeN(sock);
   }
@@ -1219,36 +1202,28 @@ bNode *nodeFindNodebyName(bNodeTree *ntree, const char *name)
   return BLI_findstring(&ntree->nodes, name, offsetof(bNode, name));
 }
 
-/* finds a node based on given socket */
-int nodeFindNode(bNodeTree *ntree, bNodeSocket *sock, bNode **nodep, int *sockindex)
+/* Finds a node based on given socket and returns true on success. */
+bool nodeFindNode(bNodeTree *ntree, bNodeSocket *sock, bNode **r_node, int *r_sockindex)
 {
-  int in_out = sock->in_out;
-  bNode *node;
-  bNodeSocket *tsock;
-  int index = 0;
+  *r_node = NULL;
 
-  for (node = ntree->nodes.first; node; node = node->next) {
-    tsock = (in_out == SOCK_IN ? node->inputs.first : node->outputs.first);
-    for (index = 0; tsock; tsock = tsock->next, index++) {
-      if (tsock == sock) {
-        break;
+  LISTBASE_FOREACH (bNode *, node, &ntree->nodes) {
+    ListBase *sockets = (sock->in_out == SOCK_IN) ? &node->inputs : &node->outputs;
+    int index = 0;
+    LISTBASE_FOREACH (bNodeSocket *, tsock, sockets) {
+      if (sock == tsock) {
+        if (r_node != NULL) {
+          *r_node = node;
+        }
+        if (r_sockindex != NULL) {
+          *r_sockindex = index;
+        }
+        return true;
       }
-    }
-    if (tsock) {
-      break;
+      index++;
     }
   }
-
-  if (node) {
-    *nodep = node;
-    if (sockindex) {
-      *sockindex = index;
-    }
-    return 1;
-  }
-
-  *nodep = NULL;
-  return 0;
+  return false;
 }
 
 /**
@@ -1259,7 +1234,6 @@ bNode *nodeFindRootParent(bNode *node)
   if (node->parent) {
     return nodeFindRootParent(node->parent);
   }
-
   return node->type == NODE_FRAME ? node : NULL;
 }
 
@@ -1291,9 +1265,7 @@ void nodeChainIter(const bNodeTree *ntree,
                    void *userdata,
                    const bool reversed)
 {
-  bNodeLink *link;
-
-  for (link = ntree->links.first; link; link = link->next) {
+  LISTBASE_FOREACH (bNodeLink *, link, &ntree->links) {
     if ((link->flag & NODE_LINK_VALID) == 0) {
       /* Skip links marked as cyclic. */
       continue;
@@ -1401,9 +1373,7 @@ void nodeUniqueName(bNodeTree *ntree, bNode *node)
 
 bNode *nodeAddNode(const struct bContext *C, bNodeTree *ntree, const char *idname)
 {
-  bNode *node;
-
-  node = MEM_callocN(sizeof(bNode), "new node");
+  bNode *node = MEM_callocN(sizeof(bNode), "new node");
   BLI_addtail(&ntree->nodes, node);
 
   BLI_strncpy(node->idname, idname, sizeof(node->idname));
@@ -1658,17 +1628,13 @@ bool nodeLinkIsHidden(bNodeLink *link)
 
 void nodeInternalRelink(bNodeTree *ntree, bNode *node)
 {
-  bNodeLink *link, *link_next;
-
   /* store link pointers in output sockets, for efficient lookup */
-  for (link = node->internal_links.first; link; link = link->next) {
+  LISTBASE_FOREACH (bNodeLink *, link, &node->internal_links) {
     link->tosock->link = link;
   }
 
   /* redirect downstream links */
-  for (link = ntree->links.first; link; link = link_next) {
-    link_next = link->next;
-
+  LISTBASE_FOREACH_MUTABLE (bNodeLink *, link, &ntree->links) {
     /* do we have internal link? */
     if (link->fromnode == node) {
       if (link->fromsock->link) {
@@ -1699,9 +1665,7 @@ void nodeInternalRelink(bNodeTree *ntree, bNode *node)
   }
 
   /* remove remaining upstream links */
-  for (link = ntree->links.first; link; link = link_next) {
-    link_next = link->next;
-
+  LISTBASE_FOREACH_MUTABLE (bNodeLink *, link, &ntree->links) {
     if (link->tonode == node) {
       nodeRemLink(ntree, link);
     }
@@ -1734,8 +1698,7 @@ void nodeFromView(bNode *node, float x, float y, float *rx, float *ry)
 
 bool nodeAttachNodeCheck(bNode *node, bNode *parent)
 {
-  bNode *parent_recurse;
-  for (parent_recurse = node; parent_recurse; parent_recurse = parent_recurse->parent) {
+  for (bNode *parent_recurse = node; pare

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list