Corrected an error in "extresist" that can output an incorrect
number of terminals for devices that don't have the usual gate/ source/drain terminals (e.g., diodes, resistors, capacitors) when writing the devices with re-mapped terminals into the .res.ext file. Also: Changed the size of the word containing the name refcount for "equiv" statements, since an accidental shorting of pins can cause a large number of "equiv" statements in a .ext file, causing an overrun of the previously 1-byte refcount (this probably does not make the structure any longer, since it likely has to fit to a word boundary).
This commit is contained in:
parent
fb091fa03f
commit
02bbb1064e
|
|
@ -763,6 +763,8 @@ efFlatGlob()
|
||||||
HashSetValue(heGlob, (ClientData) nameGlob);
|
HashSetValue(heGlob, (ClientData) nameGlob);
|
||||||
nameGlob->efnn_node = nodeFlat;
|
nameGlob->efnn_node = nodeFlat;
|
||||||
nameGlob->efnn_hier = (HierName *) heGlob->h_key.h_ptr;
|
nameGlob->efnn_hier = (HierName *) heGlob->h_key.h_ptr;
|
||||||
|
nameGlob->efnn_port = -1;
|
||||||
|
nameGlob->efnn_refc = 0;
|
||||||
}
|
}
|
||||||
else if (nameGlob->efnn_node != nodeFlat)
|
else if (nameGlob->efnn_node != nodeFlat)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -126,7 +126,7 @@ typedef struct efnn
|
||||||
struct efnn *efnn_next; /* Next name for this node */
|
struct efnn *efnn_next; /* Next name for this node */
|
||||||
HierName *efnn_hier; /* HierName for this node */
|
HierName *efnn_hier; /* HierName for this node */
|
||||||
int efnn_port; /* Port number for this node */
|
int efnn_port; /* Port number for this node */
|
||||||
unsigned char efnn_refc; /* #times referenced in hash */
|
unsigned short efnn_refc; /* #times referenced in hash */
|
||||||
} EFNodeName;
|
} EFNodeName;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -185,6 +185,8 @@ ResPrintExtDev(outextfile, devices)
|
||||||
devices->layout->rd_width,
|
devices->layout->rd_width,
|
||||||
devices->rs_sattr);
|
devices->rs_sattr);
|
||||||
|
|
||||||
|
/* Don't write drain values for 2-terminal devices */
|
||||||
|
if (devptr->exts_deviceSDCount > 1)
|
||||||
if (devices->drain != NULL)
|
if (devices->drain != NULL)
|
||||||
fprintf(outextfile, " \"%s\" %d %s",
|
fprintf(outextfile, " \"%s\" %d %s",
|
||||||
devices->drain->name,
|
devices->drain->name,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue