Compare commits

...
3 Commits
Author SHA1 Message Date
Tim Edwards ccbb286cf3 Merge branch 'master' into work 2017-08-24 09:51:46 -04:00
Tim Edwards 4809c02f79 Update at Thu Aug 24 09:51:44 EDT 2017 by tim 2017-08-24 09:51:44 -04:00
Tim Edwards af3982766e Prevented a crash condition in the error case in which ports are
unordered at the time of reaching reorderpins().  Pins will be
ordered arbitrarily (in the order of appearance in the linked
list), but netgen will not crash.
2017-08-24 09:50:40 -04:00
2 changed files with 11 additions and 2 deletions
+1 -1
View File
@@ -1 +1 @@
1.5.85
1.5.86
+10 -1
View File
@@ -6057,7 +6057,7 @@ int reorderpins(struct hashlist *p, int file)
struct nlist *ptr;
struct nlist *tc2 = Circuit2;
struct objlist *ob, *ob2, *firstpin;
int i, numports, *nodes;
int i, numports, *nodes, unordered;
char **names;
ptr = (struct nlist *)(p->ptr);
@@ -6071,14 +6071,23 @@ int reorderpins(struct hashlist *p, int file)
/* instances of both cells. */
numports = 0;
unordered = 0;
ob2 = tc2->cell;
while (ob2 && ob2->type == PORT) {
if (ob2->model.port < 0) {
ob2->model.port = numports;
unordered = 1;
}
numports++;
ob2 = ob2->next;
}
nodes = (int *)CALLOC(numports, sizeof(int));
names = (char **)CALLOC(numports, sizeof(char *));
if (unordered)
Fprintf(stderr, "Ports of %s are unordered. "
"Ordering will be arbitrary.", tc2->name);
for (ob = ptr->cell; ob != NULL; ) {
if (ob->type == FIRSTPIN) {
if ((*matchfunc)(ob->model.class, tc2->name)) {