Browse Source

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

pre-master-46
Giles Atkinson 11 months ago
committed by Holger Vogt
parent
commit
29ce826cf6
  1. 11
      src/spicelib/analysis/cktdltn.c

11
src/spicelib/analysis/cktdltn.c

@ -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);

Loading…
Cancel
Save