And one more fix to the method, for which I added a variation of
DBNMSrPaintPlane() where if "tile" is non-NULL then "plane" can be NULL; the hint tile does not get set but the routine can be called without knowing the plane other than that the tile is in it somewhere.
This commit is contained in:
parent
cccd79ab0d
commit
47778971ee
|
|
@ -92,7 +92,7 @@ DBSrPaintNMArea(hintTile, plane, ttype, rect, mask, func, arg)
|
|||
* provide a hint tile in case hintTile == NULL.
|
||||
* The hint tile in the plane is updated to be
|
||||
* the last tile visited in the area
|
||||
* enumeration.
|
||||
* enumeration, if plane is non-NULL.
|
||||
*/
|
||||
TileType ttype; /* Information about the non-manhattan area to
|
||||
* search; zero if area is manhattan.
|
||||
|
|
@ -129,7 +129,7 @@ DBSrPaintNMArea(hintTile, plane, ttype, rect, mask, func, arg)
|
|||
{
|
||||
/* Each iteration enumerates another tile */
|
||||
nm_enum:
|
||||
PlaneSetHint(plane, tp);
|
||||
if (plane != (Plane *)NULL) PlaneSetHint(plane, tp);
|
||||
if (SigInterruptPending)
|
||||
return (1);
|
||||
|
||||
|
|
|
|||
|
|
@ -375,9 +375,7 @@ areaNMCheck(tile, arg)
|
|||
|
||||
TTMaskSetOnlyType(&mask, TiGetLeftType(tile));
|
||||
TTMaskSetType(&mask, TiGetRightType(tile));
|
||||
if (DBSrPaintNMArea((Tile *)tile,
|
||||
arg->dCD_celldef->cd_planes[arg->dCD_plane],
|
||||
dinfo, arg->dCD_rlist,
|
||||
if (DBSrPaintNMArea((Tile *)tile, (Plane *)NULL, dinfo, arg->dCD_rlist,
|
||||
&mask, areaNMReject, (ClientData)tile) == 0)
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue