One correction to the last commit---The additional check is not

limited to the DRC_REVERSE case but must be done in both the
forward and reverse cases.
This commit is contained in:
R. Timothy Edwards 2025-10-30 12:37:00 -04:00
parent 51b9846120
commit cccd79ab0d
1 changed files with 16 additions and 22 deletions

View File

@ -617,14 +617,12 @@ drcTile (tile, arg)
/* Split side changes in the reverse case */ /* Split side changes in the reverse case */
dinfo |= TT_SIDE; dinfo |= TT_SIDE;
} }
else
{
/* The area to check is bounded between the diagonals of /* The area to check is bounded between the diagonals of
* tile and errRect (which is the tile area, offset). * tile and errRect (which is the tile area, offset).
* Pass errRect and dinfo to areaNMCheck using the * Pass errRect and dinfo to areaNMCheck using the
* ClientData structure arg->dCD_rlist and arg->dCD_entries, * ClientData structure arg->dCD_rlist and arg->dCD_entries,
* which are not used by areaNMCheck. This is only needed * which are not used by areaNMCheck.
* for the DRC_REVERSE case.
*/ */
arg->dCD_rlist = (Rect *)mallocMagic(sizeof(Rect)); arg->dCD_rlist = (Rect *)mallocMagic(sizeof(Rect));
*(arg->dCD_rlist) = errRect; *(arg->dCD_rlist) = errRect;
@ -633,7 +631,6 @@ drcTile (tile, arg)
arg->dCD_entries &= ~TT_SIDE; arg->dCD_entries &= ~TT_SIDE;
else else
arg->dCD_entries |= TT_SIDE; arg->dCD_entries |= TT_SIDE;
}
/* errRect is the tile area offset by (deltax, deltay) */ /* errRect is the tile area offset by (deltax, deltay) */
errRect.r_xbot += deltax; errRect.r_xbot += deltax;
@ -645,13 +642,10 @@ drcTile (tile, arg)
arg->dCD_celldef->cd_planes[cptr->drcc_plane], dinfo, arg->dCD_celldef->cd_planes[cptr->drcc_plane], dinfo,
&errRect, &tmpMask, areaNMCheck, (ClientData) arg); &errRect, &tmpMask, areaNMCheck, (ClientData) arg);
if (cptr->drcc_flags & DRC_REVERSE)
{
arg->dCD_entries = 0; arg->dCD_entries = 0;
freeMagic(arg->dCD_rlist); freeMagic(arg->dCD_rlist);
arg->dCD_rlist = (Rect *)NULL; arg->dCD_rlist = (Rect *)NULL;
} }
}
DRCstatEdges++; DRCstatEdges++;
} }