From 1933c5d4a5a747b79eb20e10982dd03b4e7d2edc Mon Sep 17 00:00:00 2001 From: Tim Edwards Date: Mon, 14 Oct 2019 11:56:39 -0400 Subject: [PATCH] Corrected another problem where the device source/drain area and perimeter were not output because of recent code that broke the routine that assigns the resistance classes to devices. This is now fixed. Thanks to Dan Moore for bringing this to my attention, and debugging investigations. --- extract/ExtTech.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/extract/ExtTech.c b/extract/ExtTech.c index 314bed99..d2b3ebbf 100644 --- a/extract/ExtTech.c +++ b/extract/ExtTech.c @@ -298,12 +298,12 @@ ExtGetDevInfo(idx, devnameptr, sd_rclassptr, sub_rclassptr, subnameptr) TileType t; TileTypeBitMask *rmask, *tmask; int n, i = 0, j; - bool repeat; + bool repeat, found; ExtDevice *devptr; char *locdname; char **uniquenamelist = (char **)mallocMagic(DBNumTypes * sizeof(char *)); - + found = FALSE; for (t = TT_TECHDEPBASE; t < DBNumTypes; t++) { for (devptr = ExtCurStyle->exts_device[t]; devptr; devptr = devptr->exts_next) @@ -320,12 +320,17 @@ ExtGetDevInfo(idx, devnameptr, sd_rclassptr, sub_rclassptr, subnameptr) } if (repeat == FALSE) { - if (i == idx) break; + if (i == idx) + { + found = TRUE; + break; + } uniquenamelist[i] = locdname; i++; } } } + if (found == TRUE) break; } if (t == DBNumTypes) return FALSE; if (devptr == NULL) return FALSE;