diff --git a/VERSION b/VERSION index 36c57972..9e0be425 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -8.3.619 +8.3.620 diff --git a/extract/ExtHier.c b/extract/ExtHier.c index 997c2033..5429ebf0 100644 --- a/extract/ExtHier.c +++ b/extract/ExtHier.c @@ -354,8 +354,8 @@ extHierConnections(ha, cumFlat, oneFlat) if (!(lab->lab_flags & LABEL_STICKY)) continue; r = lab->lab_rect; + if (!GEO_TOUCH(&r, &ha->ha_subArea)) continue; GEOCLIP(&r, &ha->ha_subArea); - if (GEO_RECTNULL(&r)) continue; cumDef = cumFlat->et_use->cu_def; connected = &DBConnectTbl[lab->lab_type]; diff --git a/extract/ExtSubtree.c b/extract/ExtSubtree.c index f3be58cb..7b68b1fd 100644 --- a/extract/ExtSubtree.c +++ b/extract/ExtSubtree.c @@ -251,6 +251,17 @@ extSubtree(parentUse, reg, f) if (result == 0) { /* If result == FALSE then ha.ha_interArea is invalid. */ ha.ha_interArea = rlab; + /* Ensure that the interaction area is not zero */ + if (ha.ha_interArea.r_xtop - ha.ha_interArea.r_xbot == 0) + { + ha.ha_interArea.r_xtop++; + ha.ha_interArea.r_xbot--; + } + if (ha.ha_interArea.r_ytop - ha.ha_interArea.r_ybot == 0) + { + ha.ha_interArea.r_ytop++; + ha.ha_interArea.r_ybot--; + } result = 1; } else @@ -779,6 +790,7 @@ extSubtreeFunc(scx, ha) */ ha->ha_subArea = use->cu_bbox; GEOCLIP(&ha->ha_subArea, &ha->ha_interArea); + hy.hy_area = &ha->ha_subArea; hy.hy_target = oneFlat->et_use; hy.hy_prefix = TRUE;