Improve efficiency of linked list search. (See BUG 783).

This commit is contained in:
Giles Atkinson 2025-05-03 08:55:29 +01:00
parent b09778d479
commit 8d76a9a56a
1 changed files with 5 additions and 6 deletions

View File

@ -20,7 +20,7 @@ CKTdltNod(CKTcircuit* ckt, CKTnode* node)
int
CKTdltNNum(CKTcircuit* ckt, int num)
{
CKTnode* n, * prev, * node, * sprev;
CKTnode* n, * prev, * node;
int error;
if (!ckt->prev_CKTlastNode->number || num <= ckt->prev_CKTlastNode->number) {
@ -30,12 +30,11 @@ CKTdltNNum(CKTcircuit* ckt, int num)
prev = NULL;
node = NULL;
sprev = NULL;
for (n = ckt->CKTnodes; n; n = n->next) {
if (n->number == num) {
node = n;
sprev = prev;
break;
}
prev = n;
}
@ -45,14 +44,14 @@ CKTdltNNum(CKTcircuit* ckt, int num)
ckt->CKTmaxEqNum -= 1;
if (!sprev) {
if (!prev) {
ckt->CKTnodes = node->next;
}
else {
sprev->next = node->next;
prev->next = node->next;
}
if (node == ckt->CKTlastNode)
ckt->CKTlastNode = sprev;
ckt->CKTlastNode = prev;
error = SPfrontEnd->IFdelUid(ckt, node->name, UID_SIGNAL);
tfree(node);