direct weaving/escape-analysis
This commit is contained in:
parent
661a09817a
commit
9f6878f891
9 changed files with 482 additions and 45 deletions
|
|
@ -34,6 +34,8 @@ public class OsmNode extends OsmLink implements OsmPos
|
|||
public byte[] nodeDescription;
|
||||
|
||||
public TurnRestriction firstRestriction;
|
||||
|
||||
public int visitID;
|
||||
|
||||
public void addTurnRestriction( TurnRestriction tr )
|
||||
{
|
||||
|
|
@ -234,6 +236,28 @@ public class OsmNode extends OsmLink implements OsmPos
|
|||
{
|
||||
return ( (long) ilon ) << 32 | ilat;
|
||||
}
|
||||
|
||||
public void vanish()
|
||||
{
|
||||
if ( !isHollow() )
|
||||
{
|
||||
OsmLink l = firstlink;
|
||||
while( l != null )
|
||||
{
|
||||
OsmNode target = l.getTarget( this );
|
||||
OsmLink nextLink = l.getNext( this );
|
||||
if ( !target.isHollow() )
|
||||
{
|
||||
unlinkLink( l );
|
||||
if ( !l.isLinkUnused() )
|
||||
{
|
||||
target.unlinkLink( l );
|
||||
}
|
||||
}
|
||||
l = nextLink;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public final void unlinkLink( OsmLink link )
|
||||
{
|
||||
|
|
@ -258,7 +282,7 @@ public class OsmNode extends OsmLink implements OsmPos
|
|||
}
|
||||
l = nl;
|
||||
}
|
||||
else
|
||||
else if ( l.n2 != this && l.n2 != null )
|
||||
{
|
||||
OsmLink nl = l.next;
|
||||
if ( nl == link )
|
||||
|
|
@ -268,6 +292,10 @@ public class OsmNode extends OsmLink implements OsmPos
|
|||
}
|
||||
l = nl;
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new IllegalArgumentException( "unlinkLink: unknown source" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue