ExtPerim.c: extEnumTilePerim() pass by-pointer const TileTypeBitMask* instead of by-value

sizeof(TileTypeBitMask) == 32
This commit is contained in:
Darryl L. Miles 2025-02-17 09:44:49 +00:00 committed by Tim Edwards
parent e8d7888300
commit 90c03738ce
5 changed files with 13 additions and 12 deletions

View File

@ -3250,7 +3250,7 @@ extTransTileFunc(tile, pNum, arg)
/* The AMD target gcc compile works and the Intel target gcc */
/* compile doesn't! The following code works the same on both. */
perim = extEnumTilePerim(tile, mask, pNum,
perim = extEnumTilePerim(tile, &mask, pNum,
extTransPerimFunc, (ClientData)NULL);
extTransRec.tr_perim += perim;
@ -3876,7 +3876,7 @@ extAnnularTileFunc(tile, pNum)
mask = ExtCurStyle->exts_deviceConn[loctype];
TTMaskCom(&mask);
extEnumTilePerim(tile, mask, pNum, extSpecialPerimFunc, (ClientData) TRUE);
extEnumTilePerim(tile, &mask, pNum, extSpecialPerimFunc, (ClientData) TRUE);
return (0);
}
@ -3934,7 +3934,7 @@ extResistorTileFunc(tile, pNum)
TTMaskSetMask(&mask, &devptr->exts_deviceSDTypes[0]);
TTMaskCom(&mask);
extEnumTilePerim(tile, mask, pNum, extSpecialPerimFunc, (ClientData)FALSE);
extEnumTilePerim(tile, &mask, pNum, extSpecialPerimFunc, (ClientData)FALSE);
if (extSpecialBounds[0] != NULL) break;
devptr = devptr->exts_next;

View File

@ -768,7 +768,7 @@ extBasicCouple(tile, ecs)
Tile *tile;
extCapStruct *ecs;
{
(void) extEnumTilePerim(tile, ExtCurStyle->exts_sideEdges[TiGetType(tile)],
(void) extEnumTilePerim(tile, &ExtCurStyle->exts_sideEdges[TiGetType(tile)],
ecs->plane, extAddCouple, (ClientData) ecs);
return (0);
}

View File

@ -79,13 +79,14 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/
*/
int
extEnumTilePerim(tpIn, mask, pNum, func, cdata)
Tile *tpIn;
TileTypeBitMask mask; /* Note: this is not a pointer */
int pNum; /* Plane of perimeter */
int (*func)();
ClientData cdata;
extEnumTilePerim(
Tile *tpIn,
const TileTypeBitMask *maskp,
int pNum, /* Plane of perimeter */
int (*func)(),
ClientData cdata)
{
TileTypeBitMask mask = *maskp; /* TTMaskCopy(&mask, maskp) */
TileType origType;
Tile *tpOut;
int perimCorrect;

View File

@ -106,7 +106,7 @@ extern void ExtGetZAxis();
extern void ExtDumpCaps();
extern int extEnumTilePerim();
extern int extEnumTilePerim(Tile *tpIn, const TileTypeBitMask *maskp, int pNum, int (*func)(), ClientData cdata);
extern Plane *extPrepSubstrate();
/* C99 compat */

View File

@ -486,7 +486,7 @@ SimTransistorTile(tile, pNum, arg)
devptr = ExtCurStyle->exts_device[t];
for (i = 0; !TTMaskHasType(&devptr->exts_deviceSDTypes[i],
TT_SPACE); i++)
extEnumTilePerim(tile, devptr->exts_deviceSDTypes[i], pNum,
extEnumTilePerim(tile, &devptr->exts_deviceSDTypes[i], pNum,
SimTransTerms, (ClientData) &transistor );
}