[Bf-blender-cvs] [acd5f5285e9] blender-v2.83-release: Fix T76538: Prevent nodesocket creation on certain nodes
Philipp Oeser
noreply at git.blender.org
Mon May 11 20:31:23 CEST 2020
Commit: acd5f5285e9416f11b462f67f781bfebdbd7e017
Author: Philipp Oeser
Date: Fri May 8 17:34:17 2020 +0200
Branches: blender-v2.83-release
https://developer.blender.org/rBacd5f5285e9416f11b462f67f781bfebdbd7e017
Fix T76538: Prevent nodesocket creation on certain nodes
- no sockets on Frame nodes
- no Input sockets on Group Input nodes
- no Output sockets on Group Output nodes
Maniphest Tasks: T76538
Differential Revision: https://developer.blender.org/D7671
===================================================================
M source/blender/blenkernel/intern/node.c
M source/blender/makesrna/intern/rna_nodetree.c
===================================================================
diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c
index c3c538f3424..5ae44247e13 100644
--- a/source/blender/blenkernel/intern/node.c
+++ b/source/blender/blenkernel/intern/node.c
@@ -771,6 +771,10 @@ bNodeSocket *nodeAddSocket(bNodeTree *ntree,
const char *identifier,
const char *name)
{
+ BLI_assert(node->type != NODE_FRAME);
+ BLI_assert(!(in_out == SOCK_IN && node->type == NODE_GROUP_INPUT));
+ BLI_assert(!(in_out == SOCK_OUT && node->type == NODE_GROUP_OUTPUT));
+
ListBase *lb = (in_out == SOCK_IN ? &node->inputs : &node->outputs);
bNodeSocket *sock = make_socket(ntree, node, in_out, lb, idname, identifier, name);
diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c
index 71b3f1ee94b..5be3db37329 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@ -1893,6 +1893,11 @@ static bNodeSocket *rna_Node_inputs_new(ID *id,
const char *name,
const char *identifier)
{
+
+ if (ELEM(node->type, NODE_GROUP_INPUT, NODE_FRAME)) {
+ BKE_report(reports, RPT_ERROR, "Unable to create socket");
+ return NULL;
+ }
/* Adding an input to a group node is not working,
* simpler to add it to its underlying nodetree. */
if (ELEM(node->type, NODE_GROUP, NODE_CUSTOM_GROUP) && node->id != NULL) {
@@ -1923,6 +1928,10 @@ static bNodeSocket *rna_Node_outputs_new(ID *id,
const char *name,
const char *identifier)
{
+ if (ELEM(node->type, NODE_GROUP_OUTPUT, NODE_FRAME)) {
+ BKE_report(reports, RPT_ERROR, "Unable to create socket");
+ return NULL;
+ }
/* Adding an output to a group node is not working,
* simpler to add it to its underlying nodetree. */
if (ELEM(node->type, NODE_GROUP, NODE_CUSTOM_GROUP) && node->id != NULL) {
More information about the Bf-blender-cvs
mailing list