Made a few corrections to yesterday's code. Most are minor, but

one can potentially cause a crash condition.
This commit is contained in:
R. Timothy Edwards 2026-03-09 14:40:53 -04:00
parent 73ffad3802
commit 725c8e9235
4 changed files with 6 additions and 13 deletions

View File

@ -1 +1 @@
8.3.616
8.3.617

View File

@ -442,7 +442,7 @@ dbCopyMaskHintsFunc(key, proprec, puds)
{
/* Append the original values to the end of the list */
for (i = 0; i < parentproprec->prop_len; i++)
newproprec->prop_value.prop_integer[i + proprec->prop_len] =
newproprec->prop_value.prop_integer[i + j] =
parentproprec->prop_value.prop_integer[i];
}

View File

@ -731,7 +731,7 @@ drcTile (tile, dinfo, arg)
if (cptr->drcc_exception != (char)DRC_EXCEPTION_NONE)
{
PropertyRecord *proprec;
bool propfound, isinside;
bool propfound, isinside = FALSE;
char *name;
char idx = cptr->drcc_exception;
if (idx < 0) idx = -idx - 1;
@ -740,12 +740,6 @@ drcTile (tile, dinfo, arg)
/* Is there any exception area defined? */
proprec = DBPropGet(arg->dCD_celldef, name, &propfound);
/* Quickest case: Rule is an exception but there are no
* exception areas.
*/
if ((!propfound) && (cptr->drcc_exception >= 0))
continue;
/* If an exception area exists, is the error edge inside? */
if (propfound)
{
@ -776,8 +770,8 @@ drcTile (tile, dinfo, arg)
* an exception area. Exception rules are ignored if
* the edge is outside an exception area.
*/
if (isinside && (cptr->drcc_exception < 0)) continue;
if (!isinside && (cptr->drcc_exception >= 0)) continue;
if (isinside && (cptr->drcc_exception < 0)) continue;
}
/* DRC_ANGLES_90 and DRC_SPLITTILE rules are handled by */
@ -1193,7 +1187,7 @@ drcTile (tile, dinfo, arg)
if (cptr->drcc_exception != (char)DRC_EXCEPTION_NONE)
{
PropertyRecord *proprec;
bool propfound, isinside;
bool propfound, isinside = FALSE;
char *name;
char idx = cptr->drcc_exception;
if (idx < 0) idx = -idx - 1;
@ -1217,7 +1211,6 @@ drcTile (tile, dinfo, arg)
redge.r_ybot = redge.r_ytop = edgeY;
redge.r_xbot = edgeLeft;
redge.r_xtop = edgeRight;
isinside = FALSE;
for (i = 0; i < proprec->prop_len; i += 4)
{
if ((i + 4) > proprec->prop_len) break;

View File

@ -1753,7 +1753,7 @@ drcMaxwidth(argc, argv)
if (PlaneMaskHasPlane(pmask2, plane2))
break;
if (plane2 == plane)
if (PlaneMaskHasPlane(pmask, plane2))
TechError("Warning: Exclude types for \"maxwidth\" are on the "
"same plane and so cannot be checked.\n");
}