Found an extreme issue in "extresist" in which the algorithm spent

all of its time running area searches on zero-area rectangles,
which was causing simple extractions to run hours.  Checking for
a zero area rectangle and conditionally skipping the area search
resulted in a massive speed-up in parasitic extraction.
This commit is contained in:
Tim Edwards 2023-09-23 12:57:03 -04:00
parent 68d6632836
commit f1e60fe8b1
2 changed files with 6 additions and 3 deletions

View File

@ -1 +1 @@
8.3.431
8.3.432

View File

@ -855,10 +855,13 @@ dbcConnectLabelFunc(scx, lab, tpath, csa2)
connectMask = &csa2->csa2_connect[slab->lab_type];
pNum = DBPlane(slab->lab_type);
if (DBSrPaintArea((Tile *) NULL, def->cd_planes[pNum],
// Do *not* run this check on zero area labels
if (!GEO_RECTNULL(&newarea))
if (DBSrPaintArea((Tile *) NULL, def->cd_planes[pNum],
&newarea, connectMask, dbcUnconnectFunc,
(ClientData) NULL) == 1)
continue;
continue;
newarea.r_xbot--;
newarea.r_xtop++;