[Bf-blender-cvs] [cfac0f59146] functions: refactor: extract method

Jacques Lucke noreply at git.blender.org
Tue Nov 26 17:32:06 CET 2019


Commit: cfac0f5914654d2eeb5bef139964661d865d2203
Author: Jacques Lucke
Date:   Tue Nov 26 17:10:46 2019 +0100
Branches: functions
https://developer.blender.org/rBcfac0f5914654d2eeb5bef139964661d865d2203

refactor: extract method

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

M	source/blender/blenkernel/BKE_inlined_node_tree.h
M	source/blender/blenkernel/intern/inlined_node_tree.cc

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

diff --git a/source/blender/blenkernel/BKE_inlined_node_tree.h b/source/blender/blenkernel/BKE_inlined_node_tree.h
index 8483cf8da46..3040562ce08 100644
--- a/source/blender/blenkernel/BKE_inlined_node_tree.h
+++ b/source/blender/blenkernel/BKE_inlined_node_tree.h
@@ -52,6 +52,8 @@ class XInputSocket : public XSocket {
   const VInputSocket &vsocket() const;
   ArrayRef<const XOutputSocket *> linked_sockets() const;
   ArrayRef<const XGroupInput *> linked_group_inputs() const;
+
+  bool is_linked() const;
 };
 
 class XOutputSocket : public XSocket {
@@ -274,6 +276,11 @@ inline ArrayRef<const XGroupInput *> XInputSocket::linked_group_inputs() const
   return m_linked_group_inputs.as_ref();
 }
 
+inline bool XInputSocket::is_linked() const
+{
+  return m_linked_sockets.size() > 0 || m_linked_group_inputs.size() > 0;
+}
+
 inline const VOutputSocket &XOutputSocket::vsocket() const
 {
   return *m_vsocket;
diff --git a/source/blender/blenkernel/intern/inlined_node_tree.cc b/source/blender/blenkernel/intern/inlined_node_tree.cc
index f83cc5f3479..68008b7f645 100644
--- a/source/blender/blenkernel/intern/inlined_node_tree.cc
+++ b/source/blender/blenkernel/intern/inlined_node_tree.cc
@@ -174,16 +174,15 @@ void InlinedNodeTree::expand_group__relink_inputs(const VirtualNodeTree &vtree,
         *inside_interface_xnode->m_outputs[inside_interface_vsocket->index()];
     XInputSocket &outside_interface = *group_node.m_inputs[input_index];
 
-    /* If the group input has no origin, insert a dummy group input. */
-    if (outside_interface.m_linked_sockets.size() == 0 &&
-        outside_interface.m_linked_group_inputs.size() == 0) {
-      XGroupInput &group_input_dummy = *m_allocator.construct<XGroupInput>().release();
-      group_input_dummy.m_id = all_group_inputs.append_and_get_index(&group_input_dummy);
-      group_input_dummy.m_vsocket = outside_interface.m_vsocket;
-      group_input_dummy.m_parent = group_node.m_parent;
-
-      group_input_dummy.m_linked_sockets.append(&outside_interface);
-      outside_interface.m_linked_group_inputs.append(&group_input_dummy);
+    /* Create group input for unconnected inputs. */
+    if (outside_interface.is_linked()) {
+      XGroupInput &group_input = *m_allocator.construct<XGroupInput>().release();
+      group_input.m_id = all_group_inputs.append_and_get_index(&group_input);
+      group_input.m_vsocket = outside_interface.m_vsocket;
+      group_input.m_parent = group_node.m_parent;
+
+      group_input.m_linked_sockets.append(&outside_interface);
+      outside_interface.m_linked_group_inputs.append(&group_input);
     }
 
     for (XOutputSocket *outside_connected : outside_interface.m_linked_sockets) {



More information about the Bf-blender-cvs mailing list