Merge branch 'master' into magic-8.2

This commit is contained in:
Tim Edwards 2019-06-08 03:00:04 -04:00
commit 2ab7f842bd
8 changed files with 18 additions and 12 deletions

View File

@ -365,9 +365,8 @@ CalmaWrite(rootDef, f)
*/ */
bool bool
calmaDumpStructure(def, cellstart, outf, calmaDefHash, filename) calmaDumpStructure(def, outf, calmaDefHash, filename)
CellDef *def; CellDef *def;
off_t cellstart;
FILE *outf; FILE *outf;
HashTable *calmaDefHash; HashTable *calmaDefHash;
char *filename; char *filename;
@ -593,10 +592,9 @@ syntaxerror:
*/ */
void void
calmaFullDump(def, fi, cellstart, outf, filename) calmaFullDump(def, fi, outf, filename)
CellDef *def; CellDef *def;
FILE *fi; FILE *fi;
off_t cellstart;
FILE *outf; FILE *outf;
char *filename; char *filename;
{ {
@ -659,7 +657,7 @@ calmaFullDump(def, fi, cellstart, outf, filename)
} }
HashSetValue(he, StrDup(NULL, uniqlibname)); HashSetValue(he, StrDup(NULL, uniqlibname));
while (calmaDumpStructure(def, cellstart, outf, &calmaDefHash, filename)) while (calmaDumpStructure(def, outf, &calmaDefHash, filename))
if (SigInterruptPending) if (SigInterruptPending)
goto done; goto done;
calmaSkipExact(CALMA_ENDLIB); calmaSkipExact(CALMA_ENDLIB);
@ -813,7 +811,7 @@ calmaProcessDef(def, outf)
he = HashLookOnly(&calmaLibHash, retfilename); he = HashLookOnly(&calmaLibHash, retfilename);
if (he == NULL) if (he == NULL)
calmaFullDump(def, fi, cellstart, outf, retfilename); calmaFullDump(def, fi, outf, retfilename);
fclose(fi); fclose(fi);
def->cd_flags |= CDVENDORGDS; def->cd_flags |= CDVENDORGDS;

View File

@ -2159,9 +2159,9 @@ drcSpacing(argc, argv)
} }
else else
{ {
runlength = distance;
layers2 = argv[3]; layers2 = argv[3];
distance = atoi(argv[4]); distance = atoi(argv[4]);
runlength = distance;
adjacency = argv[5]; adjacency = argv[5];
why = drcWhyDup(argv[6]); why = drcWhyDup(argv[6]);
} }

View File

@ -661,6 +661,7 @@ spcdevHierVisit(hc, dev, scale)
"base", esSpiceF); "base", esSpiceF);
fprintf(esSpiceF, " %s", EFDevTypes[dev->dev_type]); fprintf(esSpiceF, " %s", EFDevTypes[dev->dev_type]);
sdM = getCurDevMult();
spcHierWriteParams(hc, dev, scale, l, w, sdM); spcHierWriteParams(hc, dev, scale, l, w, sdM);
break; break;
@ -788,6 +789,7 @@ spcdevHierVisit(hc, dev, scale)
subnode->efnode_name->efnn_hier, subnode->efnode_name->efnn_hier,
"diode_bot", esSpiceF); "diode_bot", esSpiceF);
fprintf(esSpiceF, " %s", EFDevTypes[dev->dev_type]); fprintf(esSpiceF, " %s", EFDevTypes[dev->dev_type]);
sdM = getCurDevMult();
spcHierWriteParams(hc, dev, scale, l, w, sdM); spcHierWriteParams(hc, dev, scale, l, w, sdM);
break; break;
@ -808,6 +810,7 @@ spcdevHierVisit(hc, dev, scale)
gate->dterm_node->efnode_name->efnn_hier, gate->dterm_node->efnode_name->efnn_hier,
"diode_top", esSpiceF); "diode_top", esSpiceF);
fprintf(esSpiceF, " %s", EFDevTypes[dev->dev_type]); fprintf(esSpiceF, " %s", EFDevTypes[dev->dev_type]);
sdM = getCurDevMult();
spcHierWriteParams(hc, dev, scale, l, w, sdM); spcHierWriteParams(hc, dev, scale, l, w, sdM);
break; break;
@ -1514,8 +1517,8 @@ devDistJunctHierVisit(hc, dev, scale)
return 0; return 0;
} }
w = (int)((float)w * scale);
EFGetLengthAndWidth(dev, &l, &w); EFGetLengthAndWidth(dev, &l, &w);
w = (int)((float)w * scale);
for (i = 1; i<dev->dev_nterm; i++) for (i = 1; i<dev->dev_nterm; i++)
{ {

View File

@ -2335,6 +2335,7 @@ spcdevVisit(dev, hierName, scale, trans)
name, esSpiceF); name, esSpiceF);
fprintf(esSpiceF, " %s", EFDevTypes[dev->dev_type]); fprintf(esSpiceF, " %s", EFDevTypes[dev->dev_type]);
sdM = getCurDevMult();
spcWriteParams(dev, hierName, scale, l, w, sdM); spcWriteParams(dev, hierName, scale, l, w, sdM);
break; break;
@ -2456,6 +2457,7 @@ spcdevVisit(dev, hierName, scale, trans)
name, esSpiceF); name, esSpiceF);
fprintf(esSpiceF, " %s", EFDevTypes[dev->dev_type]); fprintf(esSpiceF, " %s", EFDevTypes[dev->dev_type]);
sdM = getCurDevMult();
spcWriteParams(dev, hierName, scale, l, w, sdM); spcWriteParams(dev, hierName, scale, l, w, sdM);
break; break;
@ -2473,6 +2475,7 @@ spcdevVisit(dev, hierName, scale, trans)
name, esSpiceF); name, esSpiceF);
fprintf(esSpiceF, " %s", EFDevTypes[dev->dev_type]); fprintf(esSpiceF, " %s", EFDevTypes[dev->dev_type]);
sdM = getCurDevMult();
spcWriteParams(dev, hierName, scale, l, w, sdM); spcWriteParams(dev, hierName, scale, l, w, sdM);
break; break;
@ -3796,8 +3799,8 @@ devDistJunctVisit(dev, hierName, scale, trans)
return 0; return 0;
} }
w = (int)((float)w * scale);
EFGetLengthAndWidth(dev, &l, &w); EFGetLengthAndWidth(dev, &l, &w);
w = (int)((float)w * scale);
for (i = 1; i<dev->dev_nterm; i++) for (i = 1; i<dev->dev_nterm; i++)
{ {

View File

@ -196,6 +196,7 @@ PlotFreeRaster(raster)
* have been created with PlotNewRaster. * have been created with PlotNewRaster.
*/ */
{ {
if (raster == NULL) return;
freeMagic((char *) raster->ras_bits); freeMagic((char *) raster->ras_bits);
freeMagic((char *) raster); freeMagic((char *) raster);
} }

View File

@ -1084,7 +1084,7 @@ PlotVersatec(scx, layers, xMask, user_scale)
Raster *raster = NULL; Raster *raster = NULL;
/* CMYK color separated raster buffers. */ /* CMYK color separated raster buffers. */
Raster *kRaster, *cRaster, *mRaster, *yRaster; Raster *kRaster = NULL, *cRaster = NULL, *mRaster = NULL, *yRaster = NULL;
haveColorMessage = FALSE; haveColorMessage = FALSE;
GeoTransRect(&scx->scx_trans, &scx->scx_area, &rootClip); GeoTransRect(&scx->scx_trans, &scx->scx_area, &rootClip);

View File

@ -310,6 +310,7 @@ RtrChannelObstacles(use, ch)
scx.scx_area.r_ytop += w * RtrGridSpacing + down; scx.scx_area.r_ytop += w * RtrGridSpacing + down;
scx.scx_use = use; scx.scx_use = use;
scx.scx_trans = GeoIdentityTransform; scx.scx_trans = GeoIdentityTransform;
TTMaskZero(&allObs);
TTMaskSetMask3(&allObs, &RtrMetalObstacles, &RtrPolyObstacles); TTMaskSetMask3(&allObs, &RtrMetalObstacles, &RtrPolyObstacles);
(void) DBTreeSrTiles(&scx, &allObs, 0, rtrChannelObstacleMark, (ClientData) ch); (void) DBTreeSrTiles(&scx, &allObs, 0, rtrChannelObstacleMark, (ClientData) ch);

View File

@ -1232,8 +1232,8 @@ selACPaintFunc2(tile, selACarg)
Rect rrect, orect; Rect rrect, orect;
int np, i, j; int np, i, j;
ttype = (selACarg->ttype & TT_SIDE) ? ((ttype & TT_RIGHTMASK) >> 14) : ttype = (selACarg->ttype & TT_SIDE) ? ((selACarg->ttype & TT_RIGHTMASK) >> 14) :
ttype & TT_LEFTMASK; selACarg->ttype & TT_LEFTMASK;
if (type & TT_DIAGONAL) if (type & TT_DIAGONAL)
rtype = (type & TT_SIDE) ? SplitRightType(tile) : rtype = (type & TT_SIDE) ? SplitRightType(tile) :