Skip to content

Commit 89b6f4f

Browse files
Corrected an error with the bloat-all CIF operator in which
bloat-all would fail to operate from the top layer of a contact type due to the use of DBplane(type) instead of counting all planes of the contact.
1 parent 5ebbed4 commit 89b6f4f

File tree

4 files changed

+32
-5
lines changed

4 files changed

+32
-5
lines changed

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
8.3.506
1+
8.3.507

cif/CIFgen.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1327,9 +1327,17 @@ cifBloatAllFunc(tile, bls)
13271327
}
13281328
else
13291329
{
1330-
int pNum = DBPlane(type);
1331-
pmask = (bloats->bl_plane < 0) ? 0 :
1332-
CoincidentPlanes(connect, PlaneNumToMaskBit(pNum));
1330+
if (DBIsContact(type))
1331+
{
1332+
pmask = (bloats->bl_plane < 0) ? 0 :
1333+
CoincidentPlanes(connect, DBLayerPlanes(type));
1334+
}
1335+
else
1336+
{
1337+
int pNum = DBPlane(type);
1338+
pmask = (bloats->bl_plane < 0) ? 0 :
1339+
CoincidentPlanes(connect, PlaneNumToMaskBit(pNum));
1340+
}
13331341
if (pmask == 0) TiToRect(tile, &area);
13341342
if (bloats->bl_plane < 0)
13351343
{

database/DBtcontact.c

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -895,6 +895,24 @@ DBIsContact(type)
895895
return FALSE;
896896
}
897897

898+
/*
899+
* ----------------------------------------------------------------------------
900+
*
901+
* DBLayerPlanes --
902+
*
903+
* Like LayerPlaneMask(), except as a subroutine, not a macro. For export
904+
* to other routines.
905+
*
906+
* ----------------------------------------------------------------------------
907+
*/
908+
909+
PlaneMask
910+
DBLayerPlanes(type)
911+
TileType type;
912+
{
913+
return LayerPlaneMask(type);
914+
}
915+
898916
/*
899917
* ----------------------------------------------------------------------------
900918
*

database/database.h.in

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -829,7 +829,6 @@ extern void DBTechInitContact();
829829
extern void DBTechFinalContact();
830830
extern void DBTechFinalConnect();
831831
extern void DBTechInitConnect();
832-
extern bool DBIsContact();
833832

834833
/* Cell symbol table */
835834
extern void DBCellInit();
@@ -899,6 +898,8 @@ extern Plane *DBCellGenerateSimpleSubstrate();
899898
extern TileType DBPlaneToResidue();
900899
extern TileType DBTechFindStacking();
901900
extern bool DBIsContact();
901+
extern PlaneMask DBLayerPlanes();
902+
902903
extern TileTypeBitMask *DBResidueMask();
903904
extern void DBFullResidueMask();
904905

0 commit comments

Comments
 (0)