else if(&*start==pending_block)
{
TrackIter track = start.track_iter();
- if(!(track.endpoint().paths&(1<<track->get_active_path())))
+ if(!track.endpoint().has_path(track->get_active_path()))
return;
}
{
const TrackType::Endpoint &entry_ep = track.endpoint();
unsigned path = track->get_active_path();
- if(!(entry_ep.paths&(1<<path)))
+ if(!entry_ep.has_path(path))
{
const TrackType::Endpoint &exit_ep = track.reverse().endpoint();
- if(unsigned mask = entry_ep.paths&exit_ep.paths)
+ if(entry_ep.has_common_paths(exit_ep))
{
+ unsigned mask = entry_ep.paths&exit_ep.paths;
for(path=0; mask>1; ++path, mask>>=1) ;
track->set_active_path(path);