diff --git a/VERSION b/VERSION index eec53bbe..8ace87ff 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -8.3.219 +8.3.220 diff --git a/resis/ResMain.c b/resis/ResMain.c index 7a4235bf..dabf3283 100644 --- a/resis/ResMain.c +++ b/resis/ResMain.c @@ -268,8 +268,9 @@ ResMakePortBreakpoints(def) *---------------------------------------------------------------------------- */ void -ResMakeLabelBreakpoints(def) +ResMakeLabelBreakpoints(def, goodies) CellDef *def; + ResGlobalParams *goodies; { Plane *plane; Rect *rect; @@ -284,6 +285,13 @@ ResMakeLabelBreakpoints(def) entry = HashFind(&ResNodeTable, slab->lab_text); node = ResInitializeNode(entry); + /* If the drivepoint position changes and the drivepoint is */ + /* in the "goodies" record, then make sure the tile type in */ + /* "goodies" gets changed to match. */ + + if (goodies->rg_devloc == &node->drivepoint) + goodies->rg_ttype = slab->lab_type; + node->drivepoint = slab->lab_rect.r_ll; node->rs_bbox = slab->lab_rect; node->location = slab->lab_rect.r_ll; @@ -1054,7 +1062,7 @@ ResExtractNet(node, goodies, cellname) /* Finish preprocessing. */ ResMakePortBreakpoints(ResUse->cu_def); - ResMakeLabelBreakpoints(ResUse->cu_def); + ResMakeLabelBreakpoints(ResUse->cu_def, goodies); ResFindNewContactTiles(ResContactList); ResPreProcessDevices(DevTiles, ResDevList, ResUse->cu_def); diff --git a/resis/ResRex.c b/resis/ResRex.c index 1103f485..b12263f8 100644 --- a/resis/ResRex.c +++ b/resis/ResRex.c @@ -1507,130 +1507,6 @@ ResFixDevName(line, type, device, layoutnode) } } -#if 0 - -/* - *------------------------------------------------------------------------- - * - * Deprecated function. Horribly inefficient. See qsort() version below. - * (Not yet implemented; still under test.) - * - *------------------------------------------------------------------------- - */ - -void -ResSortByGate(DevpointerList) - devPtr **DevpointerList; -{ - int changed = TRUE; - int localchange = TRUE; - devPtr *working, *current; - devPtr *last = NULL, *gatelist = NULL; - - /* Split out GATE entries into separate list (gatelist) */ - - working = *DevpointerList; - while (working != NULL) - { - if (working->terminal == GATE) - { - current = working; - working = working->nextDev; - if (last == NULL) - { - *DevpointerList = working; - } - else - { - last->nextDev = working; - } - current->nextDev = gatelist; - gatelist = current; - } - else - { - last = working; - working = working->nextDev; - } - } - - /* Sort the SOURCE and DRAIN list (DevpointerList) */ - - while (changed == TRUE) - { - changed = localchange = FALSE; - working = *DevpointerList; - last = NULL; - while (working != NULL && (current = working->nextDev) != NULL) - { - RDev *w = working->thisDev; - RDev *c = current->thisDev; - - if (w->gate > c->gate) - { - changed = TRUE; - localchange = TRUE; - } - else if (w->gate == c->gate && - (working->terminal == SOURCE && - current->terminal == SOURCE && - w->drain > c->drain || - working->terminal == SOURCE && - current->terminal == DRAIN && - w->drain > c->source || - working->terminal == DRAIN && - current->terminal == SOURCE && - w->source > c->drain || - working->terminal == DRAIN && - current->terminal == DRAIN && - w->source > c->source)) - { - changed = TRUE; - localchange = TRUE; - } - else - { - last = working; - working = working->nextDev; - continue; - } - if (localchange) - { - localchange = FALSE; - if (last == NULL) - { - *DevpointerList = current; - } - else - { - last->nextDev = current; - } - working->nextDev = current->nextDev; - current->nextDev = working; - last = current; - } - } - } - - /* Add the GATE list back to the end of DevpointerList */ - - if (working == NULL) - { - *DevpointerList = gatelist; - } - else - { - if (working->nextDev != NULL) - TxError("Bad Device pointer in sort\n"); - else - working->nextDev = gatelist; - } -} - -#endif /* 0 */ - -#if 1 - /* *------------------------------------------------------------------------- * @@ -1730,8 +1606,6 @@ ResSortByGate(DevpointerList) freeMagic(Devindexed); } -#endif /* 1 */ - /* *------------------------------------------------------------------------- *