Fix crash when creating cyclic nodes (#3313)

* Fix crash when creating cyclic nodes

* Re-add the recursive set_input call
This commit is contained in:
James Lindsay 2025-10-30 12:01:45 +00:00 committed by GitHub
parent 40c6c6160b
commit 1b9a492a74
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 6 additions and 5 deletions

View File

@ -4262,11 +4262,6 @@ impl NodeNetworkInterface {
}
}
let previous_metadata = match &previous_input {
NodeInput::Node { node_id, .. } => self.position(node_id, network_path).map(|position| (*node_id, position)),
_ => None,
};
let Some(network) = self.network_mut(network_path) else {
log::error!("Could not get nested network in set_input");
return;
@ -4303,6 +4298,12 @@ impl NodeNetworkInterface {
return;
}
// It is necessary to ensure the grpah is acyclic before calling `self.position` as it sometimes crashes with cyclic graphs #3227
let previous_metadata = match &previous_input {
NodeInput::Node { node_id, .. } => self.position(node_id, network_path).map(|position| (*node_id, position)),
_ => None,
};
self.transaction_modified();
// Ensure layer is toggled to non layer if it is no longer eligible to be a layer