X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Flibr2c2%2Fblockallocator.cpp;h=88fb12e8145baaf3f4e636311f9664b5a0a86e1d;hb=dfd78df0c79d03404d1f2e70c08b643655455725;hp=ed32193f3e1d116b65b557d9bb8619f82dc0bf41;hpb=9cb5f9ef3c0eaac499ef5d045c513116d6809e56;p=r2c2.git diff --git a/source/libr2c2/blockallocator.cpp b/source/libr2c2/blockallocator.cpp index ed32193..88fb12e 100644 --- a/source/libr2c2/blockallocator.cpp +++ b/source/libr2c2/blockallocator.cpp @@ -253,26 +253,16 @@ void BlockAllocator::reserve_more() } else { - const TrackType::Endpoint &entry_ep = track.endpoint(); unsigned path = track->get_active_path(); - if(!entry_ep.has_path(path)) + if(!track.endpoint().has_path(path)) { - const TrackType::Endpoint &exit_ep = track.reverse().endpoint(); - if(entry_ep.has_common_paths(exit_ep)) + path = track->get_type().coerce_path(track.entry(), path); + track->set_active_path(path); + if(track->is_path_changing()) { - unsigned mask = entry_ep.paths&exit_ep.paths; - for(path=0; mask>1; ++path, mask>>=1) ; - - track->set_active_path(path); - if(track->is_path_changing()) - { - pending_block = &*block; - break; - } - } - else - // XXX Do something here + pending_block = &*block; break; + } } }