Fix deleting neuron without synapses

This commit is contained in:
Pascal Serrarens 2026-04-28 11:34:41 +02:00
parent fc8caa8a29
commit 335dae788b

View File

@ -266,15 +266,19 @@ namespace NanoBrain {
} }
public static void Delete(Nucleus nucleus) { public static void Delete(Nucleus nucleus) {
foreach (Synapse synapse in nucleus.synapses) { if (nucleus == null)
if (synapse.neuron is Neuron synapse_nucleus) { return;
if (synapse_nucleus.receivers.Count > 1) { if (nucleus.synapses != null) {
// there is another nucleus feeding into this input nucleus foreach (Synapse synapse in nucleus.synapses) {
synapse_nucleus.receivers.RemoveAll(r => r == nucleus); if (synapse.neuron is Neuron synapse_nucleus) {
} if (synapse_nucleus.receivers.Count > 1) {
else { // there is another nucleus feeding into this input nucleus
// No other links, delete it. synapse_nucleus.receivers.RemoveAll(r => r == nucleus);
Neuron.Delete(synapse_nucleus); }
else {
// No other links, delete it.
Neuron.Delete(synapse_nucleus);
}
} }
} }
} }