diff --git a/include/gate.h b/include/gate.h index a4e88f455c1776913a2e79a36435045d5b66e6d1..3fdd4a3ad6ee221e7414fee0598b767c65f2ff40 100644 --- a/include/gate.h +++ b/include/gate.h @@ -48,7 +48,7 @@ void newgate2(log_grec **gate, short gt, short sig, log_gattrrec *attrs); void unlkgate(log_grec **gate); void disposegptr(log_grec **gate); void chggate(log_grec *gate, int i, log_nrec *oldnode, log_nrec *n); -void chggatepin(log_grec *gate, short i, log_nrec **oldnode, log_nrec **savenode); +void chggatepin(log_grec *gate, short i, log_nrec **oldnode); void frygate(log_grec *gate); void initpinpos(log_grec *gate); void addgate2(short x, short y, short gtype, short sig, log_gattrrec *attrs); diff --git a/include/node.h b/include/node.h index 28b922c69400cfb69cd17ca12f556abe37bffbc5..19f6f18c27118bb6908b2ed57a9aed24838ced7e 100644 --- a/include/node.h +++ b/include/node.h @@ -46,7 +46,7 @@ struct LOC_checkcombine { int checkcombine(cnrec **cnbase_); void queuecombine(cnrec **cnbase, log_nrec **n, log_nrec **n2); void newnoderef(log_nrec **n, uchar st, long ref); -void delgetnode(log_nrec **save, log_nrec **old, log_nrec **n); +void delgetnode(log_nrec **old, log_nrec **n); void checknode(log_nrec *n, struct LOC_checkcombine *LINK); int trycombinenodes(log_nrec **n1, log_nrec **n2); void reportnodeconflict(log_nrec *n); diff --git a/src/gate.c b/src/gate.c index ee30633f1733b312c3522940858e973c172f17ce..74bcfcb6dee89cfcb03a1a0b562e2ea9ead502dd 100644 --- a/src/gate.c +++ b/src/gate.c @@ -375,7 +375,7 @@ void chggate(log_grec *gate, int i, log_nrec *oldnode, log_nrec *n) } -void chggatepin(log_grec *gate, short i, log_nrec **oldnode, log_nrec **savenode) +void chggatepin(log_grec *gate, short i, log_nrec **oldnode) { log_nrec *n; log_hwrec *hw; @@ -391,7 +391,7 @@ void chggatepin(log_grec *gate, short i, log_nrec **oldnode, log_nrec **savenode { if (hw->x1 <= x && x <= hw->x2 && hw->y == y && hw->node == *oldnode) { - delgetnode(savenode, oldnode, &n); + delgetnode(oldnode, &n); if (n != *oldnode) chghw(hw, *oldnode, n); } @@ -402,7 +402,7 @@ void chggatepin(log_grec *gate, short i, log_nrec **oldnode, log_nrec **savenode { if (vw->y1 <= y && y <= vw->y2 && vw->x == x && vw->node == *oldnode) { - delgetnode(savenode, oldnode, &n); + delgetnode(oldnode, &n); if (n != *oldnode) chgvw(vw, *oldnode, n); } @@ -419,7 +419,7 @@ void chggatepin(log_grec *gate, short i, log_nrec **oldnode, log_nrec **savenode { if (x == g1->pinpos[j - 1].x && y == g1->pinpos[j - 1].y && g1->pin[j - 1] == *oldnode) { - delgetnode(savenode, oldnode, &n); + delgetnode(oldnode, &n); if (n != *oldnode) chggate(g1, j, *oldnode, n); } @@ -432,7 +432,6 @@ void chggatepin(log_grec *gate, short i, log_nrec **oldnode, log_nrec **savenode void disconnectgate(log_grec *gate) { - log_nrec *savenode; short i, j; log_nrec **oldnode; long done[log_maxpins / 32 + 2]; @@ -456,12 +455,8 @@ void disconnectgate(log_grec *gate) if (!P_inset(i, done)) { j = i; - if (i == 1 && gate->kind->simtype == simtype_common && gate->sig != 0) - savenode = NULL; - else - savenode = oldnode[i - 1]; do { - chggatepin(gate, j, &oldnode[i - 1], &savenode); + chggatepin(gate, j, &oldnode[i - 1]); P_addset(done, j); j = gate->kind->pin[j - 1].c; } while (j != i && j != 0); diff --git a/src/node.c b/src/node.c index f579f4ee1631e80336cb454e760c981069124e0f..5fb8a211c1ad713e9b9bd78a81267a96e3300513 100644 --- a/src/node.c +++ b/src/node.c @@ -331,7 +331,7 @@ void dumpnodes() trace_message("\n\n-------------------------------------------------------------------------\n\n\n"); } -void delgetnode(log_nrec **save, log_nrec **old, log_nrec **node) +void delgetnode(log_nrec **old, log_nrec **node) { copynode(*old, node); } diff --git a/src/wire.c b/src/wire.c index 49a42b13195be3cd63bcbd6590b94cfb23f4fb3b..531263366a4b6de50ea519f08740576fb5176fdc 100644 --- a/src/wire.c +++ b/src/wire.c @@ -489,7 +489,7 @@ void delhwire(log_hwrec *hw) log_vwrec *vw; log_hwrec *hw1; log_srec *s, *s1; - log_nrec *oldnode, *n, *savenode; + log_nrec *oldnode, *n; log_grec *g; short i, x, y, FORLIM; @@ -500,7 +500,6 @@ void delhwire(log_hwrec *hw) oldnode = hw->node; stamp(&oldnode->simtype->netstamp); switchnode(&hw->node, NULL); - savenode = oldnode; s = gg.pages[gg.curpage - 1]->sbase; while (s != NULL) { @@ -528,7 +527,7 @@ void delhwire(log_hwrec *hw) if (hw->x1 <= vw->x && vw->x <= hw->x2 && vw->y1 <= hw->y && hw->y <= vw->y2 && vw->node == oldnode) { - delgetnode(&savenode, &oldnode, &n); + delgetnode(&oldnode, &n); if (n != oldnode) chgvw(vw, oldnode, n); } @@ -539,7 +538,7 @@ void delhwire(log_hwrec *hw) { if (hw->y == hw1->y && (hw1->x1 == hw->x2 || hw1->x2 == hw->x1) && hw1->node == oldnode) { - delgetnode(&savenode, &oldnode, &n); + delgetnode(&oldnode, &n); if (n != oldnode) chghw(hw1, oldnode, n); } @@ -561,7 +560,7 @@ void delhwire(log_hwrec *hw) y = g->pinpos[i - 1].y; if (hw->x1 <= x && x <= hw->x2 && y == hw->y) { - delgetnode(&savenode, &oldnode, &n); + delgetnode(&oldnode, &n); if (n != oldnode) chggate(g, i, oldnode, n); } @@ -580,7 +579,7 @@ void delvwire(log_vwrec *vw) log_hwrec *hw; log_vwrec *vw1; log_srec *s, *s1; - log_nrec *oldnode, *n, *savenode; + log_nrec *oldnode, *n; log_grec *g; short i, x, y, FORLIM; @@ -591,7 +590,6 @@ void delvwire(log_vwrec *vw) oldnode = vw->node; stamp(&oldnode->simtype->netstamp); switchnode(&vw->node, NULL); - savenode = oldnode; s = gg.pages[gg.curpage - 1]->sbase; while (s != NULL) { @@ -618,7 +616,7 @@ void delvwire(log_vwrec *vw) if (hw->x1 <= vw->x && vw->x <= hw->x2 && vw->y1 <= hw->y && hw->y <= vw->y2 && hw->node == oldnode) { - delgetnode(&savenode, &oldnode, &n); + delgetnode(&oldnode, &n); if (n != oldnode) chghw(hw, oldnode, n); } @@ -630,7 +628,7 @@ void delvwire(log_vwrec *vw) if (vw->x == vw1->x && (vw1->y1 == vw->y2 || vw1->y2 == vw->y1) && vw1->node == oldnode) { - delgetnode(&savenode, &oldnode, &n); + delgetnode(&oldnode, &n); if (n != oldnode) chgvw(vw1, oldnode, n); } @@ -652,7 +650,7 @@ void delvwire(log_vwrec *vw) y = g->pinpos[i - 1].y; if (vw->y1 <= y && y <= vw->y2 && x == vw->x) { - delgetnode(&savenode, &oldnode, &n); + delgetnode(&oldnode, &n); if (n != oldnode) chggate(g, i, oldnode, n); }