diff --git a/src/ucs.rs b/src/ucs.rs index 48d9b04d2..902dc90bc 100644 --- a/src/ucs.rs +++ b/src/ucs.rs @@ -118,9 +118,14 @@ fn find_route<'a>(start: GraphNode<'a>) -> Vec> { let mut predecessors: HashMap = HashMap::new(); let end; - 'outer: loop { + loop { match heap.pop() { Some(ogn) => { + if ogn.gn.is_end() { + end = ogn.gn; + break; + } + let egn = EqualityGraphNode { gn: ogn.gn }; if visited.contains(&egn) { continue; @@ -129,12 +134,6 @@ fn find_route<'a>(start: GraphNode<'a>) -> Vec> { let gn = egn.gn; for new_gn in next_graph_nodes(&gn) { predecessors.insert(EqualityGraphNode { gn: new_gn.clone() }, gn.clone()); - - if new_gn.is_end() { - end = new_gn; - break 'outer; - } - heap.push(OrderedGraphNode { gn: new_gn }); }