Fix T92264: incorrect field inferencing when muting link between reroutes

Previously, muted links were just ignored considered by field inferencing.
Now muted links behave like normal links in the inferencing process.
This commit is contained in:
Jacques Lucke 2021-10-27 12:43:04 +02:00
parent 051bb46c55
commit 18b6f0d0f1
Notes: blender-bot 2023-02-14 04:56:36 +01:00
Referenced by issue #92264, Losing dashes when muting connection after rerout.
1 changed files with 3 additions and 3 deletions

View File

@ -4679,7 +4679,7 @@ static OutputFieldDependency find_group_output_dependencies(
while (!sockets_to_check.is_empty()) {
const InputSocketRef *input_socket = sockets_to_check.pop();
for (const OutputSocketRef *origin_socket : input_socket->logically_linked_sockets()) {
for (const OutputSocketRef *origin_socket : input_socket->directly_linked_sockets()) {
const NodeRef &origin_node = origin_socket->node();
const SocketFieldState &origin_state = field_state_by_socket_id[origin_socket->id()];
@ -4848,14 +4848,14 @@ static void propagate_field_status_from_left_to_right(
continue;
}
state.is_single = true;
if (input_socket->logically_linked_sockets().is_empty()) {
if (input_socket->directly_linked_sockets().is_empty()) {
if (inferencing_interface.inputs[input_socket->index()] ==
InputSocketFieldType::Implicit) {
state.is_single = false;
}
}
else {
for (const OutputSocketRef *origin_socket : input_socket->logically_linked_sockets()) {
for (const OutputSocketRef *origin_socket : input_socket->directly_linked_sockets()) {
if (!field_state_by_socket_id[origin_socket->id()].is_single) {
state.is_single = false;
break;