Ti[GS]etClient() usage enforcement

All naked access to `ti_client` now uses the function-like-macro
to encapsulate this action.  This macro existed before this just
makes all sites utilize it.

Added additional INT and PTR variants to remove the programmer
load on thinking about casing and casts polluting the point
of use.  So the use now looks cleaner.

Equivalent prototypes:

 void TiSetClient(Tile*, ClientData)
 void TiSetClientINT(Tile*, intptr_t) /* pointertype */
 void TiSetClientPTR(Tile*, void*)

 ClientData TiGetClient(Tile*)
 intptr_t TiGetClientINT(Tile*) /* pointertype */
 void *TiGetClientPTR(Tile*)
This commit is contained in:
Darryl L. Miles 2025-02-21 17:54:11 +00:00 committed by R. Timothy Edwards
parent 6e83cbe2d3
commit 606f37cc80
27 changed files with 336 additions and 332 deletions

View File

@ -117,8 +117,8 @@ extern void calmaRemoveDegenerate(BoundaryTop *blist);
#define GDS_PROCESSED 1
#define PUSHTILEC(tp) \
if ((tp)->ti_client == (ClientData) GDS_UNPROCESSED) { \
(tp)->ti_client = (ClientData) GDS_PENDING; \
if (TiGetClient(tp) == GDS_UNPROCESSED) { \
TiSetClientINT(tp, GDS_PENDING); \
STACKPUSH((ClientData) (tp), SegStack); \
}
@ -2462,7 +2462,7 @@ calmaMergePaintFunc(
BoundaryTop *bounds = NULL;
/* Quick check for tiles that have already been processed */
if (tile->ti_client == (ClientData)GDS_PROCESSED) return 0;
if (TiGetClientINT(tile) == GDS_PROCESSED) return 0;
if (SegStack == (Stack *)NULL)
SegStack = StackNew(64);
@ -2471,8 +2471,8 @@ calmaMergePaintFunc(
while (!StackEmpty(SegStack))
{
t = (Tile *) STACKPOP(SegStack);
if (t->ti_client != (ClientData)GDS_PENDING) continue;
t->ti_client = (ClientData)GDS_PROCESSED;
if (TiGetClientINT(t) != GDS_PENDING) continue;
TiSetClientINT(t, GDS_PROCESSED);
split_type = -1;
if (IsSplit(t))

View File

@ -124,8 +124,8 @@ extern void calmaOutR8Z(double d, gzFile f);
#define GDS_PROCESSED 1
#define PUSHTILEZ(tp) \
if ((tp)->ti_client == (ClientData) GDS_UNPROCESSED) { \
(tp)->ti_client = (ClientData) GDS_PENDING; \
if (TiGetClient(tp) == GDS_UNPROCESSED) { \
TiSetClientINT(tp, GDS_PENDING); \
STACKPUSH((ClientData) (tp), SegStack); \
}
@ -1898,7 +1898,7 @@ calmaMergePaintFuncZ(
BoundaryTop *bounds = NULL;
/* Quick check for tiles that have already been processed */
if (tile->ti_client == (ClientData)GDS_PROCESSED) return 0;
if (TiGetClientINT(tile) == GDS_PROCESSED) return 0;
if (SegStack == (Stack *)NULL)
SegStack = StackNew(64);
@ -1907,8 +1907,8 @@ calmaMergePaintFuncZ(
while (!StackEmpty(SegStack))
{
t = (Tile *) STACKPOP(SegStack);
if (t->ti_client != (ClientData)GDS_PENDING) continue;
t->ti_client = (ClientData)GDS_PROCESSED;
if (TiGetClientINT(t) != GDS_PENDING) continue;
TiSetClientINT(t, GDS_PROCESSED);
split_type = -1;
if (IsSplit(t))

View File

@ -1222,8 +1222,8 @@ endbloat:
#define CIF_IGNORE 2
#define PUSHTILE(tp, stack) \
if ((tp)->ti_client == (ClientData) CIF_UNPROCESSED) { \
(tp)->ti_client = (ClientData) CIF_PENDING; \
if (TiGetClient(tp) == CIF_UNPROCESSED) { \
TiSetClientINT(tp, CIF_PENDING); \
STACKPUSH((ClientData) (tp), stack); \
}
@ -1244,7 +1244,7 @@ cifProcessResetFunc(
Tile *tile,
ClientData clientData) /* unused */
{
tile->ti_client = (ClientData) CIF_UNPROCESSED;
TiSetClient(tile, CIF_UNPROCESSED);
return 0;
}
@ -1270,7 +1270,7 @@ cifProcessSelectiveResetFunc(tile, clipArea)
TiToRect(tile, &area);
if (!GEO_SURROUND(&area, clipArea))
tile->ti_client = (ClientData) CIF_UNPROCESSED;
TiSetClient(tile, CIF_UNPROCESSED);
return 0;
}
@ -1477,8 +1477,8 @@ cifBloatAllFunc(
while (!StackEmpty(BloatStack))
{
t = (Tile *) STACKPOP(BloatStack);
if (t->ti_client != (ClientData)CIF_PENDING) continue;
t->ti_client = (ClientData)CIF_PROCESSED;
if (TiGetClientINT(t) != CIF_PENDING) continue;
TiSetClientINT(t, CIF_PROCESSED);
/* Get the tile into CIF coordinates. */
@ -1540,7 +1540,7 @@ cifBloatAllFunc(
}
/* Clear self */
tile->ti_client = (ClientData)CIF_UNPROCESSED;
TiSetClient(tile, CIF_UNPROCESSED);
/* NOTE: Tiles must be cleared after the bloat-all function has
* completed. However, for bloat-all with a limiting distance,
@ -1554,7 +1554,7 @@ cifBloatAllFunc(
while (!StackEmpty(ResetStack))
{
t = (Tile *)STACKPOP(ResetStack);
t->ti_client = (ClientData) CIF_UNPROCESSED;
TiSetClient(t, CIF_UNPROCESSED);
}
#if 0
@ -1819,7 +1819,7 @@ cifBridgeFunc1(
int cifBridgeCheckFunc(Tile *tile, BridgeCheckStruct *brcs); /* Forward reference */
/* If tile is marked, then it has been handled, so ignore it */
if (tile->ti_client != (ClientData)CIF_UNPROCESSED) return 0;
if (TiGetClient(tile) != CIF_UNPROCESSED) return 0;
/* Find each tile outside corner (only two cases need to be checked) */
@ -1942,7 +1942,7 @@ cifBridgeFunc2(
int cifBridgeCheckFunc(Tile *tile, BridgeCheckStruct *brcs); /* Forward reference */
/* If tile is marked, then it has been handled, so ignore it */
if (tile->ti_client != (ClientData)CIF_UNPROCESSED) return 0;
if (TiGetClient(tile) != CIF_UNPROCESSED) return 0;
/* Find each tile outside corner (only two cases need to be checked) */
@ -2160,7 +2160,7 @@ cifCloseFunc(
int cifGatherFunc(Tile *tile, int *atotal, int mode);
/* If tile is marked, then it has been handled, so ignore it */
if (tile->ti_client != (ClientData)CIF_UNPROCESSED) return 0;
if (TiGetClient(tile) != CIF_UNPROCESSED) return 0;
atotal = 0;
@ -2196,8 +2196,8 @@ cifGatherFunc(
TileType type;
dlong locarea;
Rect area, newarea;
ClientData cdata = (mode == CLOSE_SEARCH) ? (ClientData)CIF_UNPROCESSED :
(ClientData)CIF_PENDING;
ClientData cdata = (mode == CLOSE_SEARCH) ? CIF_UNPROCESSED :
CD2INT(CIF_PENDING);
static Stack *GatherStack = (Stack *)NULL;
@ -2210,7 +2210,7 @@ cifGatherFunc(
tile = (Tile *)STACKPOP(GatherStack);
/* Ignore if tile has already been processed */
if (tile->ti_client != cdata) continue;
if (TiGetClient(tile) != cdata) continue;
TiToRect(tile, &area);
@ -2261,15 +2261,15 @@ cifGatherFunc(
}
if (mode == CLOSE_SEARCH)
tile->ti_client = (ClientData)CIF_PENDING;
TiSetClientINT(tile, CIF_PENDING);
else
tile->ti_client = (ClientData)CIF_PROCESSED;
TiSetClientINT(tile, CIF_PROCESSED);
/* Look for additional neighboring space tiles */
/* Check top */
if (area.r_ytop != TiPlaneRect.r_ytop)
for (tp = RT(tile); RIGHT(tp) > LEFT(tile); tp = BL(tp))
if (tp->ti_client == cdata && TiGetBottomType(tp) == TT_SPACE)
if (TiGetClient(tp) == cdata && TiGetBottomType(tp) == TT_SPACE)
{
STACKPUSH(tp, GatherStack);
}
@ -2277,7 +2277,7 @@ cifGatherFunc(
/* Check bottom */
if (area.r_ybot != TiPlaneRect.r_ybot)
for (tp = LB(tile); LEFT(tp) < RIGHT(tile); tp = TR(tp))
if (tp->ti_client == cdata && TiGetTopType(tp) == TT_SPACE)
if (TiGetClient(tp) == cdata && TiGetTopType(tp) == TT_SPACE)
{
STACKPUSH(tp, GatherStack);
}
@ -2285,7 +2285,7 @@ cifGatherFunc(
/* Check left */
if (area.r_xbot != TiPlaneRect.r_xbot)
for (tp = BL(tile); BOTTOM(tp) < TOP(tile); tp = RT(tp))
if (tp->ti_client == cdata && TiGetRightType(tp) == TT_SPACE)
if (TiGetClient(tp) == cdata && TiGetRightType(tp) == TT_SPACE)
{
STACKPUSH(tp, GatherStack);
}
@ -2293,7 +2293,7 @@ cifGatherFunc(
/* Check right */
if (area.r_xtop != TiPlaneRect.r_xtop)
for (tp = TR(tile); TOP(tp) > BOTTOM(tile); tp = LB(tp))
if (tp->ti_client == cdata && TiGetLeftType(tp) == TT_SPACE)
if (TiGetClient(tp) == cdata && TiGetLeftType(tp) == TT_SPACE)
{
STACKPUSH(tp, GatherStack);
}
@ -2343,7 +2343,7 @@ cifSquaresInitFunc(tile, clientData)
Tile *tile;
ClientData clientData;
{
if (tile->ti_client == (ClientData) CIF_UNPROCESSED)
if (TiGetClient(tile) == CIF_UNPROCESSED)
return 1;
else
return 0;
@ -2498,7 +2498,7 @@ cifUnconnectFunc(
TileType t = TiGetTypeExact(tile);
if (t == TT_SPACE) return 1;
else if (t & TT_DIAGONAL) return 1;
else if (tile->ti_client != (ClientData)CIF_PROCESSED) return 1;
else if (TiGetClientINT(tile) != CIF_PROCESSED) return 1;
return 0;
}
@ -2551,8 +2551,8 @@ cifRectBoundingBox(
while (!StackEmpty(BoxStack))
{
t = (Tile *) STACKPOP(BoxStack);
if (t->ti_client != (ClientData)CIF_PENDING) continue;
t->ti_client = (ClientData)CIF_PROCESSED;
if (TiGetClientINT(t) != CIF_PENDING) continue;
TiSetClientINT(t, CIF_PROCESSED);
/* Adjust bounding box */
TiToRect(t, &area);
@ -2615,7 +2615,7 @@ cifRectBoundingBox(
/* Clear the tiles that were processed in this set */
tile->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tile, CIF_IGNORE);
STACKPUSH(tile, BoxStack);
while (!StackEmpty(BoxStack))
{
@ -2623,33 +2623,33 @@ cifRectBoundingBox(
/* Top */
for (tp = RT(t); RIGHT(tp) > LEFT(t); tp = BL(tp))
if (tp->ti_client == (ClientData)CIF_PROCESSED)
if (TiGetClientINT(tp) == CIF_PROCESSED)
{
tp->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tp, CIF_IGNORE);
STACKPUSH(tp, BoxStack);
}
/* Left */
for (tp = BL(t); BOTTOM(tp) < TOP(t); tp = RT(tp))
if (tp->ti_client == (ClientData)CIF_PROCESSED)
if (TiGetClientINT(tp) == CIF_PROCESSED)
{
tp->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tp, CIF_IGNORE);
STACKPUSH(tp, BoxStack);
}
/* Bottom */
for (tp = LB(t); LEFT(tp) < RIGHT(t); tp = TR(tp))
if (tp->ti_client == (ClientData)CIF_PROCESSED)
if (TiGetClientINT(tp) == CIF_PROCESSED)
{
tp->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tp, CIF_IGNORE);
STACKPUSH(tp, BoxStack);
}
/* Right */
for (tp = TR(t); TOP(tp) > BOTTOM(t); tp = LB(tp))
if (tp->ti_client == (ClientData)CIF_PROCESSED)
if (TiGetClientINT(tp) == CIF_PROCESSED)
{
tp->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tp, CIF_IGNORE);
STACKPUSH(tp, BoxStack);
}
}
@ -2820,8 +2820,8 @@ cifSquaresFillArea(
while (!StackEmpty(CutStack))
{
t = (Tile *) STACKPOP(CutStack);
if (t->ti_client != (ClientData)CIF_PENDING) continue;
t->ti_client = (ClientData)CIF_PROCESSED;
if (TiGetClientINT(t) != CIF_PENDING) continue;
TiSetClientINT(t, CIF_PROCESSED);
/* Adjust bounding box */
TiToRect(t, &area);
@ -2946,7 +2946,7 @@ cifSquaresFillArea(
/* Clear the tiles that were processed */
tile->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tile, CIF_IGNORE);
STACKPUSH(tile, CutStack);
while (!StackEmpty(CutStack))
{
@ -2954,33 +2954,33 @@ cifSquaresFillArea(
/* Top */
for (tp = RT(t); RIGHT(tp) > LEFT(t); tp = BL(tp))
if (tp->ti_client == (ClientData)CIF_PROCESSED)
if (TiGetClientINT(tp) == CIF_PROCESSED)
{
tp->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tp, CIF_IGNORE);
STACKPUSH(tp, CutStack);
}
/* Left */
for (tp = BL(t); BOTTOM(tp) < TOP(t); tp = RT(tp))
if (tp->ti_client == (ClientData)CIF_PROCESSED)
if (TiGetClientINT(tp) == CIF_PROCESSED)
{
tp->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tp, CIF_IGNORE);
STACKPUSH(tp, CutStack);
}
/* Bottom */
for (tp = LB(t); LEFT(tp) < RIGHT(t); tp = TR(tp))
if (tp->ti_client == (ClientData)CIF_PROCESSED)
if (TiGetClientINT(tp) == CIF_PROCESSED)
{
tp->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tp, CIF_IGNORE);
STACKPUSH(tp, CutStack);
}
/* Right */
for (tp = TR(t); TOP(tp) > BOTTOM(t); tp = LB(tp))
if (tp->ti_client == (ClientData)CIF_PROCESSED)
if (TiGetClientINT(tp) == CIF_PROCESSED)
{
tp->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tp, CIF_IGNORE);
STACKPUSH(tp, CutStack);
}
}
@ -3162,8 +3162,8 @@ cifSlotsFillArea(
while (!StackEmpty(CutStack))
{
t = (Tile *) STACKPOP(CutStack);
if (t->ti_client != (ClientData)CIF_PENDING) continue;
t->ti_client = (ClientData)CIF_PROCESSED;
if (TiGetClientINT(t) != CIF_PENDING) continue;
TiSetClientINT(t, CIF_PROCESSED);
/* Adjust bounding box */
TiToRect(t, &area);
@ -3309,7 +3309,7 @@ cifSlotsFillArea(
/* Clear the tiles that were processed */
tile->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tile, CIF_IGNORE);
STACKPUSH(tile, CutStack);
while (!StackEmpty(CutStack))
{
@ -3317,33 +3317,33 @@ cifSlotsFillArea(
/* Top */
for (tp = RT(t); RIGHT(tp) > LEFT(t); tp = BL(tp))
if (tp->ti_client == (ClientData)CIF_PROCESSED)
if (TiGetClientINT(tp) == CIF_PROCESSED)
{
tp->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tp, CIF_IGNORE);
STACKPUSH(tp, CutStack);
}
/* Left */
for (tp = BL(t); BOTTOM(tp) < TOP(t); tp = RT(tp))
if (tp->ti_client == (ClientData)CIF_PROCESSED)
if (TiGetClientINT(tp) == CIF_PROCESSED)
{
tp->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tp, CIF_IGNORE);
STACKPUSH(tp, CutStack);
}
/* Bottom */
for (tp = LB(t); LEFT(tp) < RIGHT(t); tp = TR(tp))
if (tp->ti_client == (ClientData)CIF_PROCESSED)
if (TiGetClientINT(tp) == CIF_PROCESSED)
{
tp->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tp, CIF_IGNORE);
STACKPUSH(tp, CutStack);
}
/* Right */
for (tp = TR(t); TOP(tp) > BOTTOM(t); tp = LB(tp))
if (tp->ti_client == (ClientData)CIF_PROCESSED)
if (TiGetClientINT(tp) == CIF_PROCESSED)
{
tp->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tp, CIF_IGNORE);
STACKPUSH(tp, CutStack);
}
}
@ -4446,7 +4446,7 @@ cifBridgeLimFunc1(
brlimcs.sqdistance = (long) spacing * spacing;
/* If tile is marked, then it has been handled, so ignore it */
if (tile->ti_client != (ClientData)CIF_UNPROCESSED) return 0;
if (TiGetClient(tile) != CIF_UNPROCESSED) return 0;
/* Find each tile outside corner (up to four) */
@ -4609,7 +4609,7 @@ cifBridgeLimFunc2(
brlimcs.sqdistance = (long) width * width;
/* If tile is marked, then it has been handled, so ignore it */
if (tile->ti_client != (ClientData)CIF_UNPROCESSED) return 0;
if (TiGetClient(tile) != CIF_UNPROCESSED) return 0;
/* Find each tile outside corner (up to four) */
@ -4756,8 +4756,8 @@ cifInteractingRegions(
while (!StackEmpty(RegStack))
{
t = (Tile *) STACKPOP(RegStack);
if (t->ti_client != (ClientData)CIF_PENDING) continue;
t->ti_client = (ClientData)CIF_PROCESSED;
if (TiGetClientINT(t) != CIF_PENDING) continue;
TiSetClientINT(t, CIF_PROCESSED);
/* Get tile area for interaction search */
TiToRect(t, &area);
@ -4825,7 +4825,7 @@ cifInteractingRegions(
/* to the destination if this region was found to be interacting with */
/* op->co_paintMask (op->co_cifMask) */
tile->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tile, CIF_IGNORE);
STACKPUSH(tile, RegStack);
while (!StackEmpty(RegStack))
{
@ -4839,33 +4839,33 @@ cifInteractingRegions(
/* Top */
for (tp = RT(t); RIGHT(tp) > LEFT(t); tp = BL(tp))
if (tp->ti_client == (ClientData)CIF_PROCESSED)
if (TiGetClientINT(tp) == CIF_PROCESSED)
{
tp->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tp, CIF_IGNORE);
STACKPUSH(tp, RegStack);
}
/* Left */
for (tp = BL(t); BOTTOM(tp) < TOP(t); tp = RT(tp))
if (tp->ti_client == (ClientData)CIF_PROCESSED)
if (TiGetClientINT(tp) == CIF_PROCESSED)
{
tp->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tp, CIF_IGNORE);
STACKPUSH(tp, RegStack);
}
/* Bottom */
for (tp = LB(t); LEFT(tp) < RIGHT(t); tp = TR(tp))
if (tp->ti_client == (ClientData)CIF_PROCESSED)
if (TiGetClientINT(tp) == CIF_PROCESSED)
{
tp->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tp, CIF_IGNORE);
STACKPUSH(tp, RegStack);
}
/* Right */
for (tp = TR(t); TOP(tp) > BOTTOM(t); tp = LB(tp))
if (tp->ti_client == (ClientData)CIF_PROCESSED)
if (TiGetClientINT(tp) == CIF_PROCESSED)
{
tp->ti_client = (ClientData)CIF_IGNORE;
TiSetClientINT(tp, CIF_IGNORE);
STACKPUSH(tp, RegStack);
}
}

View File

@ -59,8 +59,8 @@ extern void drcCheckCifArea();
extern Stack *DRCstack;
#define PUSHTILE(tp) \
if ((tp)->ti_client == (ClientData) DRC_UNPROCESSED) { \
(tp)->ti_client = (ClientData) DRC_PENDING; \
if (TiGetClient(tp) == DRC_UNPROCESSED) { \
TiSetClientINT(tp, DRC_PENDING); \
STACKPUSH((ClientData) (tp), DRCstack); \
}
@ -1328,9 +1328,9 @@ drcCheckCifArea(starttile, arg, cptr)
while (!StackEmpty(DRCstack))
{
tile = (Tile *) STACKPOP(DRCstack);
if (tile->ti_client != (ClientData)DRC_PENDING) continue;
if (TiGetClientINT(tile) != DRC_PENDING) continue;
area += (long)(RIGHT(tile)-LEFT(tile))*(TOP(tile)-BOTTOM(tile));
tile->ti_client = (ClientData)DRC_PROCESSED;
TiSetClientINT(tile, DRC_PROCESSED);
/* are we at the clip boundary? If so, skip to the end */
if (RIGHT(tile) == cliprect->r_xtop ||
LEFT(tile) == cliprect->r_xbot ||
@ -1373,7 +1373,7 @@ drcCheckCifArea(starttile, arg, cptr)
}
forgetit:
/* reset the tiles */
starttile->ti_client = (ClientData)DRC_UNPROCESSED;
TiSetClient(starttile, DRC_UNPROCESSED);
STACKPUSH(starttile, DRCstack);
while (!StackEmpty(DRCstack))
{
@ -1381,34 +1381,34 @@ forgetit:
/* Top */
for (tp = RT(tile); RIGHT(tp) > LEFT(tile); tp = BL(tp))
if (tp->ti_client != (ClientData)DRC_UNPROCESSED)
if (TiGetClient(tp) != DRC_UNPROCESSED)
{
tp->ti_client = (ClientData)DRC_UNPROCESSED;
STACKPUSH(tp,DRCstack);
TiSetClient(tp, DRC_UNPROCESSED);
STACKPUSH(tp,DRCstack);
}
/* Left */
for (tp = BL(tile); BOTTOM(tp) < TOP(tile); tp = RT(tp))
if (tp->ti_client != (ClientData)DRC_UNPROCESSED)
if (TiGetClient(tp) != DRC_UNPROCESSED)
{
tp->ti_client = (ClientData)DRC_UNPROCESSED;
STACKPUSH(tp,DRCstack);
TiSetClient(tp, DRC_UNPROCESSED);
STACKPUSH(tp,DRCstack);
}
/* Bottom */
for (tp = LB(tile); LEFT(tp) < RIGHT(tile); tp = TR(tp))
if (tp->ti_client != (ClientData)DRC_UNPROCESSED)
if (TiGetClient(tp) != DRC_UNPROCESSED)
{
tp->ti_client = (ClientData)DRC_UNPROCESSED;
STACKPUSH(tp,DRCstack);
TiSetClient(tp, DRC_UNPROCESSED);
STACKPUSH(tp,DRCstack);
}
/* Right */
for (tp = TR(tile); TOP(tp) > BOTTOM(tile); tp = LB(tp))
if (tp->ti_client != (ClientData)DRC_UNPROCESSED)
if (TiGetClient(tp) != DRC_UNPROCESSED)
{
tp->ti_client = (ClientData)DRC_UNPROCESSED;
STACKPUSH(tp,DRCstack);
TiSetClient(tp, DRC_UNPROCESSED);
STACKPUSH(tp,DRCstack);
}
}
@ -1505,13 +1505,13 @@ drcCheckCifMaxwidth(starttile,arg,cptr)
while (!StackEmpty(DRCstack))
{
tile = (Tile *) STACKPOP(DRCstack);
if (tile->ti_client != (ClientData)DRC_PENDING) continue;
if (TiGetClientINT(tile) != DRC_PENDING) continue;
if (boundrect.r_xbot > LEFT(tile)) boundrect.r_xbot = LEFT(tile);
if (boundrect.r_xtop < RIGHT(tile)) boundrect.r_xtop = RIGHT(tile);
if (boundrect.r_ybot > BOTTOM(tile)) boundrect.r_ybot = BOTTOM(tile);
if (boundrect.r_ytop < TOP(tile)) boundrect.r_ytop = TOP(tile);
tile->ti_client = (ClientData)DRC_PROCESSED;
TiSetClientINT(tile, DRC_PROCESSED);
if (boundrect.r_xtop - boundrect.r_xbot > edgelimit &&
boundrect.r_ytop - boundrect.r_ybot > edgelimit) break;
@ -1553,7 +1553,7 @@ drcCheckCifMaxwidth(starttile,arg,cptr)
}
/* reset the tiles */
starttile->ti_client = (ClientData)DRC_UNPROCESSED;
TiSetClient(starttile, DRC_UNPROCESSED);
STACKPUSH(starttile, DRCstack);
while (!StackEmpty(DRCstack))
{
@ -1561,34 +1561,34 @@ drcCheckCifMaxwidth(starttile,arg,cptr)
/* Top */
for (tp = RT(tile); RIGHT(tp) > LEFT(tile); tp = BL(tp))
if (tp->ti_client != (ClientData)DRC_UNPROCESSED)
if (TiGetClient(tp) != DRC_UNPROCESSED)
{
tp->ti_client = (ClientData)DRC_UNPROCESSED;
STACKPUSH(tp,DRCstack);
TiSetClient(tp, DRC_UNPROCESSED);
STACKPUSH(tp,DRCstack);
}
/* Left */
for (tp = BL(tile); BOTTOM(tp) < TOP(tile); tp = RT(tp))
if (tp->ti_client != (ClientData)DRC_UNPROCESSED)
if (TiGetClient(tp) != DRC_UNPROCESSED)
{
tp->ti_client = (ClientData)DRC_UNPROCESSED;
STACKPUSH(tp,DRCstack);
TiSetClient(tp, DRC_UNPROCESSED);
STACKPUSH(tp,DRCstack);
}
/* Bottom */
for (tp = LB(tile); LEFT(tp) < RIGHT(tile); tp = TR(tp))
if (tp->ti_client != (ClientData)DRC_UNPROCESSED)
if (TiGetClient(tp) != DRC_UNPROCESSED)
{
tp->ti_client = (ClientData)DRC_UNPROCESSED;
STACKPUSH(tp,DRCstack);
TiSetClient(tp, DRC_UNPROCESSED);
STACKPUSH(tp,DRCstack);
}
/* Right */
for (tp = TR(tile); TOP(tp) > BOTTOM(tile); tp = LB(tp))
if (tp->ti_client != (ClientData)DRC_UNPROCESSED)
if (TiGetClient(tp) != DRC_UNPROCESSED)
{
tp->ti_client = (ClientData)DRC_UNPROCESSED;
STACKPUSH(tp,DRCstack);
TiSetClient(tp, DRC_UNPROCESSED);
STACKPUSH(tp,DRCstack);
}
}

View File

@ -24,8 +24,8 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/
Stack *DRCstack = (Stack *)NULL;
#define PUSHTILE(tp) \
if ((tp)->ti_client == (ClientData) DRC_UNPROCESSED) { \
(tp)->ti_client = (ClientData) DRC_PENDING; \
if (TiGetClient(tp) == DRC_UNPROCESSED) { \
TiSetClientINT(tp, DRC_PENDING); \
STACKPUSH((ClientData) (tp), DRCstack); \
}
@ -152,9 +152,9 @@ drcCheckArea(starttile,arg,cptr)
while (!StackEmpty(DRCstack))
{
tile = (Tile *) STACKPOP(DRCstack);
if (tile->ti_client != (ClientData)DRC_PENDING) continue;
if (TiGetClientINT(tile) != DRC_PENDING) continue;
area += (long)(RIGHT(tile)-LEFT(tile))*(TOP(tile)-BOTTOM(tile));
tile->ti_client = (ClientData)DRC_PROCESSED;
TiSetClientINT(tile, DRC_PROCESSED);
/* are we at the clip boundary? If so, skip to the end */
if (RIGHT(tile) == cliprect->r_xtop ||
LEFT(tile) == cliprect->r_xbot ||
@ -196,7 +196,7 @@ forgetit:
while (!StackEmpty(DRCstack)) tile = (Tile *) STACKPOP(DRCstack);
/* reset the tiles */
starttile->ti_client = (ClientData)DRC_UNPROCESSED;
TiSetClient(starttile, DRC_UNPROCESSED);
STACKPUSH(starttile, DRCstack);
while (!StackEmpty(DRCstack))
{
@ -204,34 +204,34 @@ forgetit:
/* Top */
for (tp = RT(tile); RIGHT(tp) > LEFT(tile); tp = BL(tp))
if (tp->ti_client != (ClientData)DRC_UNPROCESSED)
if (TiGetClient(tp) != DRC_UNPROCESSED)
{
tp->ti_client = (ClientData)DRC_UNPROCESSED;
STACKPUSH(tp,DRCstack);
TiSetClient(tp, DRC_UNPROCESSED);
STACKPUSH(tp,DRCstack);
}
/* Left */
for (tp = BL(tile); BOTTOM(tp) < TOP(tile); tp = RT(tp))
if (tp->ti_client != (ClientData)DRC_UNPROCESSED)
if (TiGetClient(tp) != DRC_UNPROCESSED)
{
tp->ti_client = (ClientData)DRC_UNPROCESSED;
STACKPUSH(tp,DRCstack);
TiSetClient(tp, DRC_UNPROCESSED);
STACKPUSH(tp,DRCstack);
}
/* Bottom */
for (tp = LB(tile); LEFT(tp) < RIGHT(tile); tp = TR(tp))
if (tp->ti_client != (ClientData)DRC_UNPROCESSED)
if (TiGetClient(tp) != DRC_UNPROCESSED)
{
tp->ti_client = (ClientData)DRC_UNPROCESSED;
STACKPUSH(tp,DRCstack);
TiSetClient(tp, DRC_UNPROCESSED);
STACKPUSH(tp,DRCstack);
}
/* Right */
for (tp = TR(tile); TOP(tp) > BOTTOM(tile); tp = LB(tp))
if (tp->ti_client != (ClientData)DRC_UNPROCESSED)
if (TiGetClient(tp) != DRC_UNPROCESSED)
{
tp->ti_client = (ClientData)DRC_UNPROCESSED;
STACKPUSH(tp,DRCstack);
TiSetClient(tp, DRC_UNPROCESSED);
STACKPUSH(tp,DRCstack);
}
}
@ -285,8 +285,8 @@ drcCheckMaxwidth(starttile,arg,cptr,both)
while (!StackEmpty(DRCstack))
{
tile = (Tile *) STACKPOP(DRCstack);
if (tile->ti_client != (ClientData)DRC_PENDING) continue;
tile->ti_client = (ClientData)DRC_PROCESSED;
if (TiGetClientINT(tile) != DRC_PENDING) continue;
TiSetClientINT(tile, DRC_PROCESSED);
if (boundrect.r_xbot > LEFT(tile)) boundrect.r_xbot = LEFT(tile);
if (boundrect.r_xtop < RIGHT(tile)) boundrect.r_xtop = RIGHT(tile);
@ -336,7 +336,7 @@ drcCheckMaxwidth(starttile,arg,cptr,both)
}
/* reset the tiles */
starttile->ti_client = (ClientData)DRC_UNPROCESSED;
TiSetClient(starttile, DRC_UNPROCESSED);
STACKPUSH(starttile, DRCstack);
while (!StackEmpty(DRCstack))
{
@ -344,33 +344,33 @@ drcCheckMaxwidth(starttile,arg,cptr,both)
/* Top */
for (tp = RT(tile); RIGHT(tp) > LEFT(tile); tp = BL(tp))
if (tp->ti_client != (ClientData)DRC_UNPROCESSED)
if (TiGetClient(tp) != DRC_UNPROCESSED)
{
tp->ti_client = (ClientData)DRC_UNPROCESSED;
STACKPUSH(tp,DRCstack);
TiSetClient(tp, DRC_UNPROCESSED);
STACKPUSH(tp,DRCstack);
}
/* Left */
for (tp = BL(tile); BOTTOM(tp) < TOP(tile); tp = RT(tp))
if (tp->ti_client != (ClientData)DRC_UNPROCESSED)
if (TiGetClient(tp) != DRC_UNPROCESSED)
{
tp->ti_client = (ClientData)DRC_UNPROCESSED;
STACKPUSH(tp,DRCstack);
TiSetClient(tp, DRC_UNPROCESSED);
STACKPUSH(tp,DRCstack);
}
/* Bottom */
for (tp = LB(tile); LEFT(tp) < RIGHT(tile); tp = TR(tp))
if (tp->ti_client != (ClientData)DRC_UNPROCESSED)
if (TiGetClient(tp) != DRC_UNPROCESSED)
{
tp->ti_client = (ClientData)DRC_UNPROCESSED;
STACKPUSH(tp,DRCstack);
TiSetClient(tp, DRC_UNPROCESSED);
STACKPUSH(tp,DRCstack);
}
/* Right */
for (tp = TR(tile); TOP(tp) > BOTTOM(tile); tp = LB(tp))
if (tp->ti_client != (ClientData)DRC_UNPROCESSED)
if (TiGetClient(tp) != DRC_UNPROCESSED)
{
tp->ti_client = (ClientData)DRC_UNPROCESSED;
TiSetClient(tp, DRC_UNPROCESSED);
STACKPUSH(tp,DRCstack);
}

View File

@ -3038,10 +3038,10 @@ extTransFindSubsFunc1(tile, noderecptr)
* regions under the same device)
*/
if (tile->ti_client != (ClientData) extUnInit)
if (TiGetClient(tile) != extUnInit)
{
if ((noderecptr->region != (NodeRegion *)NULL) &&
((ClientData)noderecptr->region != tile->ti_client))
(noderecptr->region != TiGetClientPTR(tile)))
TxError("Warning: Split substrate under device at (%d %d)\n",
tile->ti_ll.p_x, tile->ti_ll.p_y);
if (IsSplit(tile))
@ -3052,7 +3052,7 @@ extTransFindSubsFunc1(tile, noderecptr)
else
type = TiGetTypeExact(tile);
noderecptr->region = (NodeRegion *)tile->ti_client;
noderecptr->region = (NodeRegion *)TiGetClientPTR(tile);
noderecptr->layer = type;
return 1;
}
@ -3495,8 +3495,8 @@ extTermAPFunc(tile, pNum, eapd)
eapd->eapd_perim += MIN(RIGHT(tile), RIGHT(tp)) -
MAX(LEFT(tile), LEFT(tp));
if (TTMaskHasType(eapd->eapd_gatemask, type))
if (tp->ti_client != (ClientData)eapd->eapd_gatenode)
extAddSharedDevice(eapd, (NodeRegion *)tp->ti_client);
if (TiGetClientPTR(tp) != eapd->eapd_gatenode)
extAddSharedDevice(eapd, (NodeRegion *)TiGetClientPTR(tp));
}
}
@ -3509,8 +3509,8 @@ extTermAPFunc(tile, pNum, eapd)
eapd->eapd_perim += MIN(RIGHT(tile), RIGHT(tp)) -
MAX(LEFT(tile), LEFT(tp));
if (TTMaskHasType(eapd->eapd_gatemask, type))
if (tp->ti_client != (ClientData)eapd->eapd_gatenode)
extAddSharedDevice(eapd, (NodeRegion *)tp->ti_client);
if (TiGetClientPTR(tp) != eapd->eapd_gatenode)
extAddSharedDevice(eapd, (NodeRegion *)TiGetClientPTR(tp));
}
}
@ -3523,8 +3523,8 @@ extTermAPFunc(tile, pNum, eapd)
eapd->eapd_perim += MIN(TOP(tile), TOP(tp)) -
MAX(BOTTOM(tile), BOTTOM(tp));
if (TTMaskHasType(eapd->eapd_gatemask, type))
if (tp->ti_client != (ClientData)eapd->eapd_gatenode)
extAddSharedDevice(eapd, (NodeRegion *)tp->ti_client);
if (TiGetClientPTR(tp) != eapd->eapd_gatenode)
extAddSharedDevice(eapd, (NodeRegion *)TiGetClientPTR(tp));
}
}
@ -3537,8 +3537,8 @@ extTermAPFunc(tile, pNum, eapd)
eapd->eapd_perim += MIN(TOP(tile), TOP(tp)) -
MAX(BOTTOM(tile), BOTTOM(tp));
if (TTMaskHasType(eapd->eapd_gatemask, type))
if (tp->ti_client != (ClientData)eapd->eapd_gatenode)
extAddSharedDevice(eapd, (NodeRegion *)tp->ti_client);
if (TiGetClientPTR(tp) != eapd->eapd_gatenode)
extAddSharedDevice(eapd, (NodeRegion *)TiGetClientPTR(tp));
}
}
@ -4803,9 +4803,9 @@ extNodeAreaFunc(tile, arg)
* been visited in the meantime. If it's still unvisited,
* visit it and process its neighbors.
*/
if (tile->ti_client == (ClientData) reg)
if (TiGetClientPTR(tile) == reg)
continue;
tile->ti_client = (ClientData) reg;
TiSetClientPTR(tile, reg);
if (DebugIsSet(extDebugID, extDebNeighbor))
extShowTile(tile, "neighbor", 1);
@ -4909,21 +4909,21 @@ topside:
if (IsSplit(tp))
{
t = SplitBottomType(tp);
if (tp->ti_client == extUnInit && TTMaskHasType(mask, t))
if (TiGetClient(tp) == extUnInit && TTMaskHasType(mask, t))
{
PUSHTILEBOTTOM(tp, tilePlaneNum);
}
else if (tp->ti_client != (ClientData)reg && TTMaskHasType(mask, t))
else if (TiGetClientPTR(tp) != reg && TTMaskHasType(mask, t))
{
/* Count split tile twice, once for each node it belongs to. */
tp->ti_client = extUnInit;
TiSetClient(tp, extUnInit);
PUSHTILEBOTTOM(tp, tilePlaneNum);
}
}
else
{
t = TiGetTypeExact(tp);
if (tp->ti_client == extUnInit && TTMaskHasType(mask, t))
if (TiGetClient(tp) == extUnInit && TTMaskHasType(mask, t))
{
PUSHTILE(tp, tilePlaneNum);
}
@ -4954,21 +4954,21 @@ leftside:
if (IsSplit(tp))
{
t = SplitRightType(tp);
if (tp->ti_client == extUnInit && TTMaskHasType(mask, t))
if (TiGetClient(tp) == extUnInit && TTMaskHasType(mask, t))
{
PUSHTILERIGHT(tp, tilePlaneNum);
}
else if (tp->ti_client != (ClientData)reg && TTMaskHasType(mask, t))
else if (TiGetClientPTR(tp) != reg && TTMaskHasType(mask, t))
{
/* Count split tile twice, once for each node it belongs to. */
tp->ti_client = extUnInit;
TiSetClient(tp, extUnInit);
PUSHTILERIGHT(tp, tilePlaneNum);
}
}
else
{
t = TiGetTypeExact(tp);
if (tp->ti_client == extUnInit && TTMaskHasType(mask, t))
if (TiGetClient(tp) == extUnInit && TTMaskHasType(mask, t))
{
PUSHTILE(tp, tilePlaneNum);
}
@ -5000,21 +5000,21 @@ bottomside:
if (IsSplit(tp))
{
t = SplitTopType(tp);
if (tp->ti_client == extUnInit && TTMaskHasType(mask, t))
if (TiGetClient(tp) == extUnInit && TTMaskHasType(mask, t))
{
PUSHTILETOP(tp, tilePlaneNum);
}
else if (tp->ti_client != (ClientData)reg && TTMaskHasType(mask, t))
else if (TiGetClientPTR(tp) != reg && TTMaskHasType(mask, t))
{
/* Count split tile twice, once for each node it belongs to. */
tp->ti_client = extUnInit;
TiSetClient(tp, extUnInit);
PUSHTILETOP(tp, tilePlaneNum);
}
}
else
{
t = TiGetTypeExact(tp);
if (tp->ti_client == extUnInit && TTMaskHasType(mask, t))
if (TiGetClient(tp) == extUnInit && TTMaskHasType(mask, t))
{
PUSHTILE(tp, tilePlaneNum);
}
@ -5045,21 +5045,21 @@ rightside:
if (IsSplit(tp))
{
t = SplitLeftType(tp);
if (tp->ti_client == extUnInit && TTMaskHasType(mask, t))
if (TiGetClient(tp) == extUnInit && TTMaskHasType(mask, t))
{
PUSHTILELEFT(tp, tilePlaneNum);
}
else if (tp->ti_client != (ClientData)reg && TTMaskHasType(mask, t))
else if (TiGetClientPTR(tp) != reg && TTMaskHasType(mask, t))
{
/* Count split tile twice, once for each node it belongs to */
tp->ti_client = extUnInit;
TiSetClient(tp, extUnInit);
PUSHTILELEFT(tp, tilePlaneNum);
}
}
else
{
t = TiGetTypeExact(tp);
if (tp->ti_client == extUnInit && TTMaskHasType(mask, t))
if (TiGetClient(tp) == extUnInit && TTMaskHasType(mask, t))
{
PUSHTILE(tp, tilePlaneNum);
}
@ -5090,7 +5090,7 @@ donesides:
GOTOPOINT(tp, &tile->ti_ll);
plane->pl_hint = tp;
if (tp->ti_client != extUnInit) continue;
if (TiGetClient(tp) != extUnInit) continue;
/* tp and tile should have the same geometry for a contact */
if (IsSplit(tile) && IsSplit(tp))

View File

@ -108,7 +108,7 @@ struct extPathFloodArg
};
/* Used to mark tiles during path tracing */
#define MARKED ((ClientData) 1)
#define MARKED (1)
/* Forward declarations */
Label *extPathLabel();
@ -665,7 +665,7 @@ extPathPairDistance(lab1, lab2, pMin, pMax)
/* Reset ti_client fields in tiles */
for (pNum = PL_TECHDEPBASE; pNum < DBNumPlanes; pNum++)
(void) DBSrPaintClient((Tile *) NULL, extPathDef->cd_planes[pNum],
&TiPlaneRect, &DBAllButSpaceBits, MARKED,
&TiPlaneRect, &DBAllButSpaceBits, (ClientData) MARKED,
extPathResetClient, (ClientData) NULL);
}
@ -688,7 +688,7 @@ int
extPathResetClient(tile)
Tile *tile;
{
tile->ti_client = (ClientData) CLIENTDEFAULT;
TiSetClient(tile, CLIENTDEFAULT);
return (0);
}
@ -780,7 +780,7 @@ extPathFlood(tile, p, distance, epa)
Rect r;
/* Mark the tile as being visited */
tile->ti_client = MARKED;
TiSetClientINT(tile, MARKED);
/*
* Are we at the destination yet?
@ -820,22 +820,22 @@ extPathFlood(tile, p, distance, epa)
/* TOP */
for (tp = RT(tile); RIGHT(tp) > LEFT(tile); tp = BL(tp))
if (tp->ti_client != MARKED && DBConnectsTo(TiGetType(tp), type))
if (TiGetClientINT(tp) != MARKED && DBConnectsTo(TiGetType(tp), type))
extPathFloodTile(tile, p, distance, tp, epa);
/* RIGHT */
for (tp = TR(tile); TOP(tp) > BOTTOM(tile); tp = LB(tp))
if (tp->ti_client != MARKED && DBConnectsTo(TiGetType(tp), type))
if (TiGetClientINT(tp) != MARKED && DBConnectsTo(TiGetType(tp), type))
extPathFloodTile(tile, p, distance, tp, epa);
/* BOTTOM */
for (tp = LB(tile); LEFT(tp) < RIGHT(tile); tp = TR(tp))
if (tp->ti_client != MARKED && DBConnectsTo(TiGetType(tp), type))
if (TiGetClientINT(tp) != MARKED && DBConnectsTo(TiGetType(tp), type))
extPathFloodTile(tile, p, distance, tp, epa);
/* LEFT */
for (tp = BL(tile); BOTTOM(tp) < TOP(tile); tp = RT(tp))
if (tp->ti_client != MARKED && DBConnectsTo(TiGetType(tp), type))
if (TiGetClientINT(tp) != MARKED && DBConnectsTo(TiGetType(tp), type))
extPathFloodTile(tile, p, distance, tp, epa);
/* Try connections to other planes */
@ -856,7 +856,7 @@ extPathFlood(tile, p, distance, epa)
plane->pl_hint = tp;
/* If not yet visited, process tp */
if (tp->ti_client == (ClientData) CLIENTDEFAULT
if (TiGetClient(tp) == CLIENTDEFAULT
&& DBConnectsTo(type, TiGetType(tp)))
{
epa->epa_pNum = pNum;

View File

@ -117,9 +117,9 @@ ExtFindNeighbors(tile, tilePlaneNum, arg)
* been visited in the meantime. If it's still unvisited,
* visit it and process its neighbors.
*/
if (tile->ti_client == (ClientData) arg->fra_region)
if (TiGetClientPTR(tile) == arg->fra_region)
continue;
tile->ti_client = (ClientData) arg->fra_region;
TiSetClientPTR(tile, arg->fra_region);
tilesfound++;
if (DebugIsSet(extDebugID, extDebNeighbor))
extShowTile(tile, "neighbor", 1);
@ -132,8 +132,8 @@ topside:
if (IsSplit(tp))
{
t = SplitBottomType(tp);
// if (tp->ti_client == extNbrUn && TTMaskHasType(mask, t))
if (tp->ti_client != (ClientData)arg->fra_region && TTMaskHasType(mask, t))
// if (TiGetClient(tp) == extNbrUn && TTMaskHasType(mask, t))
if (TiGetClientPTR(tp) != arg->fra_region && TTMaskHasType(mask, t))
{
PUSHTILEBOTTOM(tp, tilePlaneNum);
}
@ -141,7 +141,7 @@ topside:
else
{
t = TiGetTypeExact(tp);
if (tp->ti_client == extNbrUn && TTMaskHasType(mask, t))
if (TiGetClient(tp) == extNbrUn && TTMaskHasType(mask, t))
{
PUSHTILE(tp, tilePlaneNum);
}
@ -156,8 +156,8 @@ leftside:
if (IsSplit(tp))
{
t = SplitRightType(tp);
// if (tp->ti_client == extNbrUn && TTMaskHasType(mask, t))
if (tp->ti_client != (ClientData)arg->fra_region && TTMaskHasType(mask, t))
// if (TiGetClient(tp) == extNbrUn && TTMaskHasType(mask, t))
if (TiGetClientPTR(tp) != arg->fra_region && TTMaskHasType(mask, t))
{
PUSHTILERIGHT(tp, tilePlaneNum);
}
@ -165,7 +165,7 @@ leftside:
else
{
t = TiGetTypeExact(tp);
if (tp->ti_client == extNbrUn && TTMaskHasType(mask, t))
if (TiGetClient(tp) == extNbrUn && TTMaskHasType(mask, t))
{
PUSHTILE(tp, tilePlaneNum);
}
@ -181,8 +181,8 @@ bottomside:
if (IsSplit(tp))
{
t = SplitTopType(tp);
// if (tp->ti_client == extNbrUn && TTMaskHasType(mask, t))
if (tp->ti_client != (ClientData)arg->fra_region && TTMaskHasType(mask, t))
// if (TiGetClient(tp) == extNbrUn && TTMaskHasType(mask, t))
if (TiGetClientPTR(tp) != arg->fra_region && TTMaskHasType(mask, t))
{
PUSHTILETOP(tp, tilePlaneNum);
}
@ -190,7 +190,7 @@ bottomside:
else
{
t = TiGetTypeExact(tp);
if (tp->ti_client == extNbrUn && TTMaskHasType(mask, t))
if (TiGetClient(tp) == extNbrUn && TTMaskHasType(mask, t))
{
PUSHTILE(tp, tilePlaneNum);
}
@ -205,8 +205,8 @@ rightside:
if (IsSplit(tp))
{
t = SplitLeftType(tp);
// if (tp->ti_client == extNbrUn && TTMaskHasType(mask, t))
if (tp->ti_client != (ClientData)arg->fra_region && TTMaskHasType(mask, t))
// if (TiGetClient(tp) == extNbrUn && TTMaskHasType(mask, t))
if (TiGetClientPTR(tp) != arg->fra_region && TTMaskHasType(mask, t))
{
PUSHTILELEFT(tp, tilePlaneNum);
}
@ -214,7 +214,7 @@ rightside:
else
{
t = TiGetTypeExact(tp);
if (tp->ti_client == extNbrUn && TTMaskHasType(mask, t))
if (TiGetClient(tp) == extNbrUn && TTMaskHasType(mask, t))
{
PUSHTILE(tp, tilePlaneNum);
}
@ -240,7 +240,7 @@ donesides:
tp = plane->pl_hint;
GOTOPOINT(tp, &tile->ti_ll);
plane->pl_hint = tp;
if (tp->ti_client != extNbrUn) continue;
if (TiGetClient(tp) != extNbrUn) continue;
/* tp and tile should have the same geometry for a contact */
if (IsSplit(tile) && IsSplit(tp))
@ -317,7 +317,7 @@ fail:
while (!StackEmpty(extNodeStack))
{
POPTILE(tile, tilePlaneNum);
tile->ti_client = (ClientData) arg->fra_region;
TiSetClientPTR(tile, arg->fra_region);
}
return -1;
}
@ -356,7 +356,7 @@ extNbrPushFunc(tile, pla)
tileArea = &pla->area;
/* Ignore tile if it's already been visited */
if (tile->ti_client != extNbrUn)
if (TiGetClient(tile) != extNbrUn)
return 0;
/* Only consider tile if it overlaps tileArea or shares part of a side */

View File

@ -875,14 +875,14 @@ defExemptWireFunc(
Rect r;
/* Do not change the client data of tiles that have been processed! */
if (tile->ti_client != (ClientData) 1)
if (TiGetClientINT(tile) != 1)
{
/* Ignore contacts, which need additional processing */
if (DBIsContact(TiGetType(tile))) return 0;
TiToRect(tile, &r);
if (GEO_SURROUND(rect, &r))
tile->ti_client = (ClientData) 2;
TiSetClientINT(tile, 2);
}
return 0;
}

View File

@ -646,7 +646,7 @@ lefYankGeometry(
bool iscut;
/* Ignore marked tiles */
if (tile->ti_client != (ClientData)CLIENTDEFAULT) return 0;
if (TiGetClient(tile) != CLIENTDEFAULT) return 0;
otype = TiGetTypeExact(tile);
if (IsSplit(tile))
@ -736,7 +736,7 @@ lefYankContacts(
TileTypeBitMask *lrmask;
/* Ignore marked tiles */
if (tile->ti_client != (ClientData)CLIENTDEFAULT) return 0;
if (TiGetClient(tile) != CLIENTDEFAULT) return 0;
/* Ignore split tiles */
if (IsSplit(tile)) return 0;
@ -805,11 +805,11 @@ lefWriteGeometry(
LefMapping *lefMagicToLefLayer = lefdata->lefMagicMap;
/* Ignore tiles that have already been output */
if (tile->ti_client != (ClientData)CLIENTDEFAULT)
if (TiGetClient(tile) != CLIENTDEFAULT)
return 0;
/* Mark this tile as visited */
TiSetClient(tile, (ClientData)1);
TiSetClientINT(tile, 1);
/* Get layer type */
if (IsSplit(tile))
@ -834,7 +834,7 @@ lefWriteGeometry(
/* Reset the tile to not visited and return 1 to */
/* signal that something is going to be written. */
TiSetClient(tile, (ClientData)CLIENTDEFAULT);
TiSetClient(tile, CLIENTDEFAULT);
return 1;
}

View File

@ -1948,7 +1948,7 @@ plowSplitY(tp, y)
Tile *newTile;
newTile = TiSplitY(tp, y);
newTile->ti_client = tp->ti_client;
TiSetClient(newTile, TiGetClient(tp));
TiSetBody(newTile, TiGetBody(tp));
return (newTile);

View File

@ -314,7 +314,7 @@ plowYankUpdatePaint(yankTp, pNum)
(void) plowSplitY(spareTp, TOP(yankTp));
if (BOTTOM(spareTp) < BOTTOM(yankTp))
spareTp = plowSplitY(spareTp, BOTTOM(yankTp));
spareTp->ti_client = yankTp->ti_client;
TiSetClient(spareTp, TiGetClient(yankTp));
}
startPoint.p_y = BOTTOM(spareTp) - 1;

View File

@ -46,7 +46,7 @@ resNodeIsPort(node, x, y, tile)
Rect *rect;
Point p;
resPort *pl, *lp;
tileJunk *junk = (tileJunk *)(tile->ti_client);
tileJunk *junk = (tileJunk *)TiGetClientPTR(tile);
p.p_x = x;
p.p_y = y;
@ -90,7 +90,7 @@ resAllPortNodes(tile, list)
int x, y;
resNode *resptr;
resPort *pl;
tileJunk *junk = (tileJunk *)(tile->ti_client);
tileJunk *junk = (tileJunk *)TiGetClientPTR(tile);
for (pl = junk->portList; pl; pl = pl->rp_nextPort)
{
@ -198,7 +198,7 @@ ResEachTile(tile, startpoint)
int xj, yj, i;
bool merged;
tElement *tcell;
tileJunk *tstructs= (tileJunk *)(tile->ti_client);
tileJunk *tstructs= (tileJunk *)TiGetClientPTR(tile);
ExtDevice *devptr;
ResTileCount++;

View File

@ -60,9 +60,9 @@ ResNewSDDevice(tile, tp, xj, yj, direction, PendingList)
* be generated which means "more debugging needed"; however, it will
* not cause a segmentation violation.
*/
if (tp->ti_client == CLIENTDEFAULT) return;
if (TiGetClient(tp) == CLIENTDEFAULT) return;
j = (tileJunk *) tp->ti_client;
j = (tileJunk *) TiGetClientPTR(tp);
resDev = j->deviceList;
if ((j->sourceEdge & direction) != 0)
{
@ -128,7 +128,7 @@ ResNewSubDevice(tile, tp, xj, yj, direction, PendingList)
tileJunk *j;
newnode = FALSE;
j = (tileJunk *) tp->ti_client;
j = (tileJunk *) TiGetClientPTR(tp);
resDev = j->deviceList;
/* Arrived at a device that has a terminal connected to substrate */
@ -181,8 +181,8 @@ ResProcessJunction(tile, tp, xj, yj, NodeList)
ResJunction *junction;
resNode *resptr;
jElement *jcell;
tileJunk *j0 = (tileJunk *)tile->ti_client;
tileJunk *j2 = (tileJunk *)tp->ti_client;
tileJunk *j0 = (tileJunk *)TiGetClientPTR(tile);
tileJunk *j2 = (tileJunk *)TiGetClientPTR(tp);
#ifdef PARANOID
if (tile == tp)

View File

@ -357,7 +357,7 @@ ResAddBreakpointFunc(tile, node)
{
tileJunk *junk;
if (tile->ti_client == (ClientData) CLIENTDEFAULT)
if (TiGetClient(tile) == CLIENTDEFAULT)
return 0;
NEWPORT(node, tile);
@ -422,7 +422,7 @@ ResFindNewContactTiles(contacts)
if ((IsSplit(tile) && TTMaskHasType(&mask, TiGetRightType(tile)))
|| TTMaskHasType(&mask, TiGetType(tile)))
{
tileJunk *j = (tileJunk *)tile->ti_client;
tileJunk *j = (tileJunk *)TiGetClientPTR(tile);
cElement *ce;
ce = (cElement *) mallocMagic((unsigned) (sizeof(cElement)));
@ -444,7 +444,7 @@ ResFindNewContactTiles(contacts)
*/
if (TTMaskIntersect(DBResidueMask(ttype), &mask))
{
tileJunk *j = (tileJunk *)tile->ti_client;
tileJunk *j = (tileJunk *)TiGetClientPTR(tile);
cElement *ce;
ce = (cElement *) mallocMagic((unsigned) (sizeof(cElement)));
@ -545,7 +545,7 @@ ResProcessTiles(goodies, origin)
{
Tile *tile = fix->fp_tile;
if (tile != NULL && (((tileJunk *)tile->ti_client)->tj_status &
if (tile != NULL && (((tileJunk *)TiGetClientPTR(tile)->tj_status &
RES_TILE_DONE) == 0)
{
resCurrentNode = fix->fp_node;
@ -584,7 +584,7 @@ ResProcessTiles(goodies, origin)
for (tilenum = 0; tilenum < TILES_PER_JUNCTION; tilenum++)
{
Tile *tile = rj->rj_Tile[tilenum];
tileJunk *j = (tileJunk *)tile->ti_client;
tileJunk *j = (tileJunk *)TiGetClientPTR(tile);
if ((j->tj_status & RES_TILE_DONE) == 0)
{
@ -611,7 +611,7 @@ ResProcessTiles(goodies, origin)
for (tilenum = 0; tilenum < cp->cp_currentcontact; tilenum++)
{
Tile *tile = cp->cp_tile[tilenum];
tileJunk *j = (tileJunk *) tile->ti_client;
tileJunk *j = (tileJunk *) TiGetClientPTR(tile);
if ((j->tj_status & RES_TILE_DONE) == 0)
{
@ -814,7 +814,7 @@ resExpandDevFunc(tile, cx)
if (devResetStack == NULL)
devResetStack = StackNew(8);
tile->ti_client = (ClientData)DEV_PROCESSED;
TiSetClientINT(tile, DEV_PROCESSED);
STACKPUSH((ClientData)tile, devExtentsStack);
while (!StackEmpty(devExtentsStack))
@ -837,12 +837,12 @@ resExpandDevFunc(tile, cx)
/* top */
for (tp2 = RT(tp); RIGHT(tp2) > LEFT(tp); tp2 = BL(tp2))
{
if (tp2->ti_client == (ClientData)DEV_PROCESSED) continue;
if (TiGetClientINT(tp2) == DEV_PROCESSED) continue;
ttype = TiGetBottomType(tp2);
if ((ttype == thisDev->type) || (DBIsContact(ttype)
&& TTMaskHasType(DBResidueMask(ttype), thisDev->type)))
{
tp2->ti_client = (ClientData)DEV_PROCESSED;
TiSetClientINT(tp2, DEV_PROCESSED);
STACKPUSH((ClientData)tp2, devExtentsStack);
}
}
@ -850,12 +850,12 @@ resExpandDevFunc(tile, cx)
/* bottom */
for (tp2 = LB(tp); LEFT(tp2) < RIGHT(tp); tp2 = TR(tp2))
{
if (tp2->ti_client == (ClientData)DEV_PROCESSED) continue;
if (TiGetClientINT(tp2) == DEV_PROCESSED) continue;
ttype = TiGetTopType(tp2);
if ((ttype == thisDev->type) || (DBIsContact(ttype)
&& TTMaskHasType(DBResidueMask(ttype), thisDev->type)))
{
tp2->ti_client = (ClientData)DEV_PROCESSED;
TiSetClientINT(tp2, DEV_PROCESSED);
STACKPUSH((ClientData)tp2, devExtentsStack);
}
}
@ -863,12 +863,12 @@ resExpandDevFunc(tile, cx)
/* right */
for (tp2 = TR(tp); TOP(tp2) > BOTTOM(tp); tp2 = LB(tp2))
{
if (tp2->ti_client == (ClientData)DEV_PROCESSED) continue;
if (TiGetClientINT(tp2) == DEV_PROCESSED) continue;
ttype = TiGetLeftType(tp2);
if ((ttype == thisDev->type) || (DBIsContact(ttype)
&& TTMaskHasType(DBResidueMask(ttype), thisDev->type)))
{
tp2->ti_client = (ClientData)DEV_PROCESSED;
TiSetClientINT(tp2, DEV_PROCESSED);
STACKPUSH((ClientData)tp2, devExtentsStack);
}
}
@ -876,12 +876,12 @@ resExpandDevFunc(tile, cx)
/* left */
for (tp2 = BL(tp); BOTTOM(tp2) < TOP(tp); tp2 = RT(tp2))
{
if (tp2->ti_client == (ClientData)DEV_PROCESSED) continue;
if (TiGetClientINT(tp2) == DEV_PROCESSED) continue;
ttype = TiGetRightType(tp2);
if ((ttype == thisDev->type) || (DBIsContact(ttype)
&& TTMaskHasType(DBResidueMask(ttype), thisDev->type)))
{
tp2->ti_client = (ClientData)DEV_PROCESSED;
TiSetClientINT(tp2, DEV_PROCESSED);
STACKPUSH((ClientData)tp2, devExtentsStack);
}
}
@ -891,7 +891,7 @@ resExpandDevFunc(tile, cx)
while (!StackEmpty(devResetStack))
{
tp = (Tile *) STACKPOP(devResetStack);
tp->ti_client = (ClientData)CLIENTDEFAULT;
TiSetClient(tp, CLIENTDEFAULT);
}
/* Return 1 to stop the search; we only need to run this from */
@ -1443,8 +1443,8 @@ FindStartTile(goodies, SourcePoint)
MAX(BOTTOM(tile), BOTTOM(tp))) >> 1;
return(tp);
}
else if (tp->ti_client != CLIENTDEFAULT)
if (((tileJunk *)tp->ti_client)->tj_status & RES_TILE_DEV)
else if (TiGetClient(tp) != CLIENTDEFAULT)
if (((tileJunk *)TiGetClientPTR(tp))->tj_status & RES_TILE_DEV)
complex = TRUE;
}
@ -1460,8 +1460,8 @@ FindStartTile(goodies, SourcePoint)
MAX(BOTTOM(tile), BOTTOM(tp))) >> 1;
return(tp);
}
else if (tp->ti_client != CLIENTDEFAULT)
if (((tileJunk *)tp->ti_client)->tj_status & RES_TILE_DEV)
else if (TiGetClient(tp) != CLIENTDEFAULT)
if (((tileJunk *)TiGetClientPTR(tp))->tj_status & RES_TILE_DEV)
complex = TRUE;
}
@ -1477,8 +1477,8 @@ FindStartTile(goodies, SourcePoint)
MAX(LEFT(tile), LEFT(tp))) >> 1;
return(tp);
}
else if (tp->ti_client != CLIENTDEFAULT)
if (((tileJunk *)tp->ti_client)->tj_status & RES_TILE_DEV)
else if (TiGetClient(tp) != CLIENTDEFAULT)
if (((tileJunk *)TiGetClientPTR(tp))->tj_status & RES_TILE_DEV)
complex = TRUE;
}
@ -1494,8 +1494,8 @@ FindStartTile(goodies, SourcePoint)
MAX(LEFT(tile), LEFT(tp))) >> 1;
return(tp);
}
else if (tp->ti_client != CLIENTDEFAULT)
if (((tileJunk *)tp->ti_client)->tj_status & RES_TILE_DEV)
else if (TiGetClient(tp) != CLIENTDEFAULT)
if (((tileJunk *)TiGetClientPTR(tp))->tj_status & RES_TILE_DEV)
complex = TRUE;
}
@ -1507,7 +1507,7 @@ FindStartTile(goodies, SourcePoint)
if (devStack == NULL) devStack = StackNew(8);
((tileJunk *)tile->ti_client)->tj_status |= RES_TILE_PUSHED;
((tileJunk *)TiGetClientPTR(tile))->tj_status |= RES_TILE_PUSHED;
STACKPUSH((ClientData)tile, devStack);
while (!StackEmpty(devStack))
{
@ -1529,14 +1529,14 @@ FindStartTile(goodies, SourcePoint)
}
return(tp);
}
else if (tp->ti_client != CLIENTDEFAULT)
else if (TiGetClient(tp) != CLIENTDEFAULT)
{
if (((tileJunk *)tp->ti_client)->tj_status & RES_TILE_DEV)
if (((tileJunk *)TiGetClientPTR(tp))->tj_status & RES_TILE_DEV)
{
if (!(((tileJunk *)tp->ti_client)->tj_status
if (!(((tileJunk *)TiGetClientPTR(tp))->tj_status
& RES_TILE_PUSHED))
{
((tileJunk *)tp->ti_client)->tj_status
((tileJunk *)TiGetClientPTR(tp))->tj_status
|= RES_TILE_PUSHED;
STACKPUSH((ClientData)tp, devStack);
}
@ -1560,14 +1560,14 @@ FindStartTile(goodies, SourcePoint)
}
return(tp);
}
else if (tp->ti_client != CLIENTDEFAULT)
else if (TiGetClient(tp) != CLIENTDEFAULT)
{
if (((tileJunk *)tp->ti_client)->tj_status & RES_TILE_DEV)
if (((tileJunk *)TiGetClientPTR(tp))->tj_status & RES_TILE_DEV)
{
if (!(((tileJunk *)tp->ti_client)->tj_status
if (!(((tileJunk *)TiGetClientPTR(tp))->tj_status
& RES_TILE_PUSHED))
{
((tileJunk *)tp->ti_client)->tj_status
((tileJunk *)TiGetClientPTR(tp))->tj_status
|= RES_TILE_PUSHED;
STACKPUSH((ClientData)tp, devStack);
}
@ -1591,14 +1591,14 @@ FindStartTile(goodies, SourcePoint)
}
return(tp);
}
else if (tp->ti_client != CLIENTDEFAULT)
else if (TiGetClient(tp) != CLIENTDEFAULT)
{
if (((tileJunk *)tp->ti_client)->tj_status & RES_TILE_DEV)
if (((tileJunk *)TiGetClientPTR(tp))->tj_status & RES_TILE_DEV)
{
if (!(((tileJunk *)tp->ti_client)->tj_status
if (!(((tileJunk *)TiGetClientPTR(tp))->tj_status
& RES_TILE_PUSHED))
{
((tileJunk *)tp->ti_client)->tj_status
((tileJunk *)TiGetClientPTR(tp))->tj_status
|= RES_TILE_PUSHED;
STACKPUSH((ClientData)tp, devStack);
}
@ -1622,14 +1622,14 @@ FindStartTile(goodies, SourcePoint)
}
return(tp);
}
else if (tp->ti_client != CLIENTDEFAULT)
else if (TiGetClient(tp) != CLIENTDEFAULT)
{
if (((tileJunk *)tp->ti_client)->tj_status & RES_TILE_DEV)
if (((tileJunk *)TiGetClientPTR(tp))->tj_status & RES_TILE_DEV)
{
if (!(((tileJunk *)tp->ti_client)->tj_status
if (!(((tileJunk *)TiGetClientPTR(tp))->tj_status
& RES_TILE_PUSHED))
{
((tileJunk *)tp->ti_client)->tj_status
((tileJunk *)TiGetClientPTR(tp))->tj_status
|= RES_TILE_PUSHED;
STACKPUSH((ClientData)tp, devStack);
}
@ -1722,15 +1722,15 @@ ResGetDevice(pt, type)
{
if (TTMaskHasType(&ExtCurStyle->exts_deviceMask, TiGetLeftType(tile))
|| TTMaskHasType(&ExtCurStyle->exts_deviceMask, TiGetRightType(tile)))
return (((tileJunk *)tile->ti_client)->deviceList);
return (((tileJunk *)TiGetClientPTR(tile))->deviceList);
}
else if (TTMaskHasType(&ExtCurStyle->exts_deviceMask, TiGetType(tile)))
{
/* Failure to have a valid client data will result in a "Bad Device"
* error and indicates a problem that needs debugging.
*/
if (tile->ti_client != CLIENTDEFAULT)
return (((tileJunk *)tile->ti_client)->deviceList);
if (TiGetClient(tile) != CLIENTDEFAULT)
return (((tileJunk *)TiGetClientPTR(tile))->deviceList);
}
return NULL;
}

View File

@ -132,7 +132,7 @@ ResCalcEastWest(tile, pendingList, doneList, resList)
resElement *element;
resNode *currNode;
float rArea;
tileJunk *junk = (tileJunk *)tile->ti_client;
tileJunk *junk = (tileJunk *)TiGetClientPTR(tile);
merged = FALSE;
height = TOP(tile) - BOTTOM(tile);
@ -303,7 +303,7 @@ ResCalcNorthSouth(tile, pendingList, doneList, resList)
resElement *element;
resNode *currNode;
float rArea;
tileJunk *junk = (tileJunk *)tile->ti_client;
tileJunk *junk = (tileJunk *)TiGetClientPTR(tile);
merged = FALSE;
width = RIGHT(tile) - LEFT(tile);
@ -472,7 +472,7 @@ ResCalcNearDevice(tile, pendingList, doneList, resList)
bool merged;
int devcount, devedge, deltax, deltay;
Breakpoint *p1, *p2, *p3;
tileJunk *junk = (tileJunk *)tile->ti_client;
tileJunk *junk = (tileJunk *)TiGetClientPTR(tile);
merged = FALSE;

View File

@ -709,7 +709,7 @@ ResMergeNodes(node1, node2, pendingList, doneList)
tileJunk *junk;
tile = tJunc->je_thisj->rj_Tile[i];
junk = (tileJunk *) tile->ti_client;
junk = (tileJunk *) TiGetClientPTR(tile);
if ((junk->tj_status & RES_TILE_DONE) == FALSE)
ResFixBreakPoint(&junk->breakList, node2, node1);
@ -733,7 +733,7 @@ ResMergeNodes(node1, node2, pendingList, doneList)
workingCon->ce_thisc->cp_cnode[i] = node1;
tile =tCon->ce_thisc->cp_tile[i];
junk = (tileJunk *) tile->ti_client;
junk = (tileJunk *) TiGetClientPTR(tile);
if ((junk->tj_status & RES_TILE_DONE) == FALSE)
ResFixBreakPoint(&junk->breakList, node2, node1);
}

View File

@ -190,7 +190,7 @@ ResAddPlumbing(tile, arg)
if (resDevStack == NULL)
resDevStack = StackNew(64);
if (tile->ti_client == (ClientData) CLIENTDEFAULT)
if (TiGetClient(tile) == CLIENTDEFAULT)
{
if (IsSplit(tile))
loctype = (SplitSide(tile)) ? SplitRightType(tile) :
@ -437,12 +437,12 @@ ResAddPlumbing(tile, arg)
t1 = TiGetTypeExact(tp1);
devptr = ExtCurStyle->exts_device[t1];
j0 = (tileJunk *) tp1->ti_client;
j0 = (tileJunk *) TiGetClientPTR(tp1);
/* top */
for (tp2 = RT(tp1); RIGHT(tp2) > LEFT(tp1); tp2 = BL(tp2))
{
if ((TiGetBottomType(tp2) == t1) &&
(tp2->ti_client == (ClientData) CLIENTDEFAULT))
(TiGetClient(tp2) == CLIENTDEFAULT))
{
Junk = resAddField(tp2);
STACKPUSH((ClientData)tp2, resDevStack);
@ -472,7 +472,7 @@ ResAddPlumbing(tile, arg)
for (tp2 = LB(tp1); LEFT(tp2) < RIGHT(tp1); tp2 = TR(tp2))
{
if ((TiGetTopType(tp2) == t1) &&
(tp2->ti_client == (ClientData) CLIENTDEFAULT))
(TiGetClient(tp2) == CLIENTDEFAULT))
{
Junk = resAddField(tp2);
STACKPUSH((ClientData)tp2, resDevStack);
@ -502,7 +502,7 @@ ResAddPlumbing(tile, arg)
for (tp2 = TR(tp1); TOP(tp2) > BOTTOM(tp1); tp2 = LB(tp2))
{
if ((TiGetLeftType(tp2) == t1) &&
(tp2->ti_client == (ClientData) CLIENTDEFAULT))
(TiGetClient(tp2) == CLIENTDEFAULT))
{
Junk = resAddField(tp2);
STACKPUSH((ClientData)tp2, resDevStack);
@ -532,7 +532,7 @@ ResAddPlumbing(tile, arg)
for (tp2 = BL(tp1); BOTTOM(tp2) < TOP(tp1); tp2 = RT(tp2))
{
if ((TiGetRightType(tp2) == t1) &&
(tp2->ti_client == (ClientData) CLIENTDEFAULT))
(TiGetClient(tp2) == CLIENTDEFAULT))
{
Junk = resAddField(tp2);
STACKPUSH((ClientData)tp2, resDevStack);
@ -564,7 +564,7 @@ ResAddPlumbing(tile, arg)
if (source != (Tile *) NULL)
{
tileJunk *j = (tileJunk *) source->ti_client;
tileJunk *j = (tileJunk *) TiGetClientPTR(source);
STACKPUSH((ClientData)source, resDevStack);
j->tj_status &= ~RES_TILE_SD;
@ -583,7 +583,7 @@ ResAddPlumbing(tile, arg)
/* top */
for (tp2 = RT(tp1); RIGHT(tp2) > LEFT(tp1); tp2 = BL(tp2))
{
tileJunk *j2 = (tileJunk *) tp2->ti_client;
tileJunk *j2 = (tileJunk *) TiGetClientPTR(tp2);
if (TiGetBottomType(tp2) == t1)
{
if (j2->tj_status & RES_TILE_SD)
@ -596,7 +596,7 @@ ResAddPlumbing(tile, arg)
/* bottom */
for(tp2 = LB(tp1); LEFT(tp2) < RIGHT(tp1); tp2 = TR(tp2))
{
tileJunk *j2 = (tileJunk *) tp2->ti_client;
tileJunk *j2 = (tileJunk *) TiGetClientPTR(tp2);
if (TiGetTopType(tp2) == t1)
{
if (j2->tj_status & RES_TILE_SD)
@ -609,7 +609,7 @@ ResAddPlumbing(tile, arg)
/* right */
for (tp2 = TR(tp1); TOP(tp2) > BOTTOM(tp1); tp2 = LB(tp2))
{
tileJunk *j2 = (tileJunk *) tp2->ti_client;
tileJunk *j2 = (tileJunk *) TiGetClientPTR(tp2);
if (TiGetLeftType(tp2) == t1)
{
if (j2->tj_status & RES_TILE_SD)
@ -622,7 +622,7 @@ ResAddPlumbing(tile, arg)
/* left */
for (tp2 = BL(tp1); BOTTOM(tp2) < TOP(tp1); tp2 = RT(tp2))
{
tileJunk *j2 = (tileJunk *) tp2->ti_client;
tileJunk *j2 = (tileJunk *) TiGetClientPTR(tp2);
if (TiGetRightType(tp2) == t1)
{
if (j2->tj_status & RES_TILE_SD)
@ -657,10 +657,10 @@ ResRemovePlumbing(tile, arg)
{
if (tile->ti_client != (ClientData) CLIENTDEFAULT)
if (TiGetClient(tile) != CLIENTDEFAULT)
{
freeMagic(((char *)(tile->ti_client)));
tile->ti_client = (ClientData) CLIENTDEFAULT;
freeMagic((char *)TiGetClientPTR(tile));
TiSetClient(tile, CLIENTDEFAULT);
}
return(0);
}
@ -725,7 +725,7 @@ ResPreProcessDevices(TileList, DeviceList, Def)
GOTOPOINT(tile, &(TileList->area.r_ll));
tt = TiGetType(tile);
tstruct = (tileJunk *) tile->ti_client;
tstruct = (tileJunk *) TiGetClientPTR(tile);
if ((tstruct == (tileJunk *)CLIENTDEFAULT) ||
(tstruct->deviceList == NULL) ||
@ -846,11 +846,11 @@ resAddField(tile)
Tile *tile;
{
tileJunk *Junk;
if ((Junk = (tileJunk *)tile->ti_client) == (tileJunk *) CLIENTDEFAULT)
if ((Junk = (tileJunk *)TiGetClientPTR(tile)) == (tileJunk *) CLIENTDEFAULT)
{
Junk = (tileJunk *) mallocMagic((unsigned) (sizeof(tileJunk)));
ResJunkInit(Junk);
tile->ti_client = (ClientData) Junk;
TiSetClientPTR(tile, Junk);
}
return Junk;
}

View File

@ -171,7 +171,7 @@ rtrPinArrayInit(ch, side, pins, nPins)
if (side == GEO_WEST) p.p_x--;
if (side == GEO_SOUTH) p.p_y--;
tp = TiSrPointNoHint(RtrChannelPlane, &p);
if ((adjacent = (GCRChannel *) tp->ti_client))
if ((adjacent = (GCRChannel *) TiGetClientPTR(tp)))
{
/* Only link if entering the linked channel from a legal side */
linked = RtrPointToPin(adjacent, otherSide, &point);

View File

@ -289,7 +289,7 @@ rtrSideInitClient(tile, client)
Tile *tile;
ClientData client;
{
tile->ti_client = client;
TiSetClient(tile, client);
return (0);
}
@ -323,7 +323,7 @@ rtrEnumSidesFunc(tile)
Side side;
/* Skip if already processed, out of the area, or not a cell tile */
yprev = (int) CD2INT(tile->ti_client);
yprev = (int) TiGetClientINT(tile);
ybot = MAX(BOTTOM(tile), rtrSideArea.r_ybot);
if (yprev <= ybot || tile->ti_body == (ClientData) NULL
|| RIGHT(tile) >= rtrSideArea.r_xtop)
@ -392,7 +392,7 @@ rtrEnumSidesFunc(tile)
if (LEFT(tp) != RIGHT(tile) || TOP(tp) <= ybot)
{
/* Processed this tile completely */
tile->ti_client = INT2CD(ybot);
TiSetClientINT(tile, ybot);
return (0);
}
}
@ -441,7 +441,7 @@ rtrEnumSidesFunc(tile)
else
{
side.side_line.r_ytop = MIN(TOP(tp), ytop);
tp->ti_client = INT2CD(ybot);
TiSetClientINT(tp, ybot);
}
}
}

View File

@ -562,7 +562,7 @@ rtrStemTryPin(loc, dir, p, use)
tp = TiSrPointNoHint(RtrChannelPlane, &pSearch);
if (TiGetType(tp) != TT_SPACE)
return ((GCRPin *) NULL);
ch = (GCRChannel *) tp->ti_client;
ch = (GCRChannel *) TiGetClientPTR(tp);
if (ch == (GCRChannel *) NULL || ch->gcr_type != CHAN_NORMAL)
return ((GCRPin *) NULL);
@ -949,7 +949,7 @@ rtrStemSearch(center, dir, point)
tile = TiSrPointNoHint(RtrChannelPlane, point);
if (TiGetType(tile) == TT_SPACE)
{
if ((ch = (GCRChannel *) tile->ti_client))
if ((ch = (GCRChannel *) TiGetClientPTR(tile)))
break;
return ((GCRChannel *) NULL);
}

View File

@ -268,13 +268,13 @@ rtrSrTraverseFunc(tile, ts)
if (csa->csa_clear)
{
if (tile->ti_client == (ClientData) CLIENTDEFAULT) return 0;
tile->ti_client = (ClientData) CLIENTDEFAULT;
if (TiGetClient(tile) == CLIENTDEFAULT) return 0;
TiSetClient(tile, CLIENTDEFAULT);
}
else
{
if (tile->ti_client != (ClientData) CLIENTDEFAULT) return 0;
tile->ti_client = (ClientData) 1;
if (TiGetClient(tile) != CLIENTDEFAULT) return 0;
TiSetClientINT(tile, 1);
}
/* Call the client function, if there is one. */
@ -300,9 +300,9 @@ rtrSrTraverseFunc(tile, ts)
{
if (csa->csa_clear)
{
if (t2->ti_client == (ClientData) CLIENTDEFAULT) continue;
if (TiGetClient(t2) == CLIENTDEFAULT) continue;
}
else if (t2->ti_client != (ClientData) CLIENTDEFAULT) continue;
else if (TiGetClient(t2) != CLIENTDEFAULT) continue;
if (rtrSrTraverseFunc(t2, &nts) != 0) return 1;
}
}
@ -315,9 +315,9 @@ rtrSrTraverseFunc(tile, ts)
{
if (csa->csa_clear)
{
if (t2->ti_client == (ClientData) CLIENTDEFAULT) continue;
if (TiGetClient(t2) == CLIENTDEFAULT) continue;
}
else if (t2->ti_client != (ClientData) CLIENTDEFAULT) continue;
else if (TiGetClient(t2) != CLIENTDEFAULT) continue;
if (rtrSrTraverseFunc(t2, &nts) != 0) return 1;
}
}
@ -330,9 +330,9 @@ rtrSrTraverseFunc(tile, ts)
{
if (csa->csa_clear)
{
if (t2->ti_client == (ClientData) CLIENTDEFAULT) goto nextRight;
if (TiGetClient(t2) == CLIENTDEFAULT) goto nextRight;
}
else if (t2->ti_client != (ClientData) CLIENTDEFAULT) goto nextRight;
else if (TiGetClient(t2) != CLIENTDEFAULT) goto nextRight;
if (rtrSrTraverseFunc(t2, &nts) != 0) return 1;
}
nextRight: if (BOTTOM(t2) <= tileArea.r_ybot) break;
@ -346,9 +346,9 @@ rtrSrTraverseFunc(tile, ts)
{
if (csa->csa_clear)
{
if (t2->ti_client == (ClientData) CLIENTDEFAULT) goto nextTop;
if (TiGetClient(t2) == CLIENTDEFAULT) goto nextTop;
}
else if (t2->ti_client != (ClientData) CLIENTDEFAULT) goto nextTop;
else if (TiGetClient(t2) != CLIENTDEFAULT) goto nextTop;
if (rtrSrTraverseFunc(t2, &nts) != 0) return 1;
}
nextTop: if (LEFT(t2) <= tileArea.r_xbot) break;

View File

@ -413,9 +413,9 @@ selShortTileProc(tile, ssd)
Tile *tile;
ShortSearchData *ssd;
{
if ((int)CD2INT(tile->ti_client) < ssd->cost)
if ((int)TiGetClientINT(tile) < ssd->cost)
{
ssd->cost = (int)CD2INT(tile->ti_client);
ssd->cost = (int)TiGetClientINT(tile);
ssd->tile = tile;
}
return 0;
@ -457,7 +457,7 @@ selShortFindReverse(rlist, tile, pnum, fdir)
TileType ttype;
mindir = fdir;
mincost = (int)CD2INT(tile->ti_client);
mincost = (int)TiGetClientINT(tile);
while (TRUE)
{
@ -504,7 +504,7 @@ selShortFindReverse(rlist, tile, pnum, fdir)
newrrec->r_next = *rlist;
*rlist = newrrec;
if ((int)CD2INT(tile->ti_client) == 0) return 0; /* We're done */
if ((int)TiGetClientINT(tile) == 0) return 0; /* We're done */
minp = pnum;
@ -518,10 +518,10 @@ selShortFindReverse(rlist, tile, pnum, fdir)
for (tp = RT(tile); RIGHT(tp) > LEFT(tile); tp = BL(tp))
{
if (tp->ti_client == (ClientData)CLIENTDEFAULT) continue;
if ((int)CD2INT(tp->ti_client) < mincost)
if (TiGetClient(tp) == CLIENTDEFAULT) continue;
if ((int)TiGetClientINT(tp) < mincost)
{
mincost = (int)CD2INT(tp->ti_client);
mincost = (int)TiGetClientINT(tp);
mintp = tp;
mindir = GEO_NORTH;
}
@ -538,10 +538,10 @@ leftside:
for (tp = BL(tile); BOTTOM(tp) < TOP(tile); tp = RT(tp))
{
if (tp->ti_client == (ClientData)CLIENTDEFAULT) continue;
if ((int)CD2INT(tp->ti_client) < mincost)
if (TiGetClient(tp) == CLIENTDEFAULT) continue;
if ((int)TiGetClientINT(tp) < mincost)
{
mincost = (int)CD2INT(tp->ti_client);
mincost = (int)TiGetClientINT(tp);
mintp = tp;
mindir = GEO_WEST;
}
@ -558,10 +558,10 @@ bottomside:
for (tp = LB(tile); LEFT(tp) < RIGHT(tile); tp = TR(tp))
{
if (tp->ti_client == (ClientData)CLIENTDEFAULT) continue;
if ((int)CD2INT(tp->ti_client) < mincost)
if (TiGetClient(tp) == CLIENTDEFAULT) continue;
if ((int)TiGetClientINT(tp) < mincost)
{
mincost = (int)CD2INT(tp->ti_client);
mincost = (int)TiGetClientINT(tp);
mintp = tp;
mindir = GEO_SOUTH;
}
@ -578,10 +578,10 @@ rightside:
for (tp = TR(tile); TOP(tp) > BOTTOM(tile); tp = LB(tp))
{
if (tp->ti_client == (ClientData)CLIENTDEFAULT) continue;
if ((int)CD2INT(tp->ti_client) < mincost)
if (TiGetClient(tp) == CLIENTDEFAULT) continue;
if ((int)TiGetClientINT(tp) < mincost)
{
mincost = (int)CD2INT(tp->ti_client);
mincost = (int)TiGetClientINT(tp);
mintp = tp;
mindir = GEO_EAST;
}
@ -620,7 +620,7 @@ donesides:
if (mincost == INT_MAX) return 1;
/* Failsafe: Avoid infinite recursion */
if ((tile == mintp) || (tile->ti_client == CLIENTDEFAULT))
if ((tile == mintp) || (TiGetClient(tile) == CLIENTDEFAULT))
{
TxError("Failed to trace back shorting path.\n");
break;
@ -712,7 +712,7 @@ selShortProcessTile(tile, cost, fdir, mask)
/* algorithm to find any valid path but not the best path. That */
/* choice keeps the algorithm fast and efficient. */
if (tile->ti_client != (ClientData)CLIENTDEFAULT) return 1;
if (TiGetClient(tile) != CLIENTDEFAULT) return 1;
if (IsSplit(tile))
{
@ -748,10 +748,10 @@ selShortProcessTile(tile, cost, fdir, mask)
/* If this tile is unvisited, or has a lower cost, then return and */
/* keep going. Otherwise, return 1 to stop the search this direction */
if (tile->ti_client == (ClientData)CLIENTDEFAULT)
TiSetClient(tile, cost);
else if ((int)CD2INT(tile->ti_client) > cost)
TiSetClient(tile, cost);
if (TiGetClient(tile) == CLIENTDEFAULT)
TiSetClientINT(tile, cost);
else if ((int)TiGetClientINT(tile) > cost)
TiSetClientINT(tile, cost);
else
return 1;
@ -795,7 +795,7 @@ selShortFindForward(srctile, srctype, srcpnum, desttile)
ShortStack = StackNew(64);
/* Set the cost of the source tile to zero */
TiSetClient(srctile, (ClientData)0);
TiSetClientINT(srctile, 0);
/* Drop the first entry on the stack */
sd = NewSD(cost, srctile, srctype, srcpnum);
@ -1009,7 +1009,7 @@ SelectShort(char *lab1, char *lab2)
selShortFindForward(srctile, srctype, srcpnum, desttile/*, desttype*/);
/* Now see if destination has been counted */
if (desttile->ti_client == (ClientData)CLIENTDEFAULT) return NULL;
if (TiGetClient(desttile) == CLIENTDEFAULT) return NULL;
/* Now find the shortest path between source and destination */
rlist = NULL;

View File

@ -372,7 +372,7 @@ int SimTransTerms( bp, trans )
TransTerm *term;
Tile *tile = bp->b_outside;
TileType type;
NodeRegion *reg = (NodeRegion *) tile->ti_client;
NodeRegion *reg = (NodeRegion *) TiGetClientPTR(tile);
int pNum;
int i;
@ -590,7 +590,7 @@ SimFindOneNode( sx, tile )
transistor.t_pnum = DBNumPlanes;
transistor.t_do_terms = FALSE;
gateTile->ti_client = (ClientData) extUnInit;
TiSetClient(gateTile, extUnInit);
arg.fra_connectsTo = &SimTransMask;
if (IsSplit(tile))
@ -639,7 +639,7 @@ SimFindOneNode( sx, tile )
loctype = TiGetTypeExact(sdTile);
arg.fra_pNum = DBPlane(loctype);
arg.fra_uninit = (ClientData) sdTile->ti_client;
arg.fra_uninit = TiGetClient(sdTile);
arg.fra_region = (ExtRegion *) &ret;
arg.fra_each = SimTransistorTile;
(void) ExtFindNeighbors( sdTile, arg.fra_pNum, &arg );
@ -718,7 +718,7 @@ SimGetNodeName(sx, tp, path)
/* check to see if this tile has been extracted before */
if (tp->ti_client == extUnInit)
if (TiGetClient(tp) == extUnInit)
{
NodeSpec *ns;
@ -732,7 +732,7 @@ SimGetNodeName(sx, tp, path)
}
else
{
nodeList = (NodeRegion *)(tp->ti_client);
nodeList = (NodeRegion *)TiGetClientPTR(tp);
}
/* generate the node name from the label region and the path name */

View File

@ -335,7 +335,7 @@ SimSelectFunc(tile, pHead)
/* check to see if the node has already been extracted */
if (tile->ti_client == (ClientData) 1) {
if (TiGetClientINT(tile) == 1) {
return(0);
}

View File

@ -241,7 +241,11 @@ extern Tile *TiSrPoint(Tile *, Plane *, Point *);
/* See diagnostic subroutine version in tile.c */
#define TiSetBody(tp, b) ((tp)->ti_body = INT2CD((b)))
#define TiGetClient(tp) ((tp)->ti_client)
#define TiSetClient(tp,b) ((tp)->ti_client = INT2CD((b)))
#define TiGetClientINT(tp) (CD2INT((tp)->ti_client))
#define TiGetClientPTR(tp) (CD2PTR((tp)->ti_client))
#define TiSetClient(tp,cd) ((tp)->ti_client = (cd))
#define TiSetClientINT(tp,cd) ((tp)->ti_client = INT2CD((cd)))
#define TiSetClientPTR(tp,cd) ((tp)->ti_client = PTR2CD((cd)))
Tile *TiAlloc(void);
void TiFree(Tile *);

View File

@ -47,7 +47,7 @@ genCanonicalMaxwidth(bbox, starttile, plane, mask)
mrd->listdepth = 8;
}
if (mask == NULL)
mrd->match = starttile->ti_client;
mrd->match = TiGetClient(starttile);
else
mrd->match = CLIENTDEFAULT;
@ -104,7 +104,7 @@ FindMaxRects(tile, mrd)
int s, entries;
if (mrd->match != CLIENTDEFAULT)
if (tile->ti_client == mrd->match)
if (TiGetClient(tile) == mrd->match)
return 0;
entries = 0;