[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