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. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs