From 90c03738ce118b21b274724f6ad311dced9a570f Mon Sep 17 00:00:00 2001 From: "Darryl L. Miles" Date: Mon, 17 Feb 2025 09:44:49 +0000 Subject: [PATCH] ExtPerim.c: extEnumTilePerim() pass by-pointer const TileTypeBitMask* instead of by-value sizeof(TileTypeBitMask) == 32 --- extract/ExtBasic.c | 6 +++--- extract/ExtCouple.c | 2 +- extract/ExtPerim.c | 13 +++++++------ extract/extract.h | 2 +- sim/SimExtract.c | 2 +- 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/extract/ExtBasic.c b/extract/ExtBasic.c index fcd6f12f..5a17aa12 100644 --- a/extract/ExtBasic.c +++ b/extract/ExtBasic.c @@ -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; diff --git a/extract/ExtCouple.c b/extract/ExtCouple.c index 9b669248..e2e9acf9 100644 --- a/extract/ExtCouple.c +++ b/extract/ExtCouple.c @@ -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); } diff --git a/extract/ExtPerim.c b/extract/ExtPerim.c index 7ef98a9f..58cabfe4 100644 --- a/extract/ExtPerim.c +++ b/extract/ExtPerim.c @@ -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; diff --git a/extract/extract.h b/extract/extract.h index 4ee74cab..b5a2e90a 100644 --- a/extract/extract.h +++ b/extract/extract.h @@ -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 */ diff --git a/sim/SimExtract.c b/sim/SimExtract.c index eb7f0981..048dec6f 100644 --- a/sim/SimExtract.c +++ b/sim/SimExtract.c @@ -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 ); }