In sssp_bfs(), never try to update myself.

This commit is contained in:
Guus Sliepen 2015-07-22 14:33:56 +02:00 committed by thorkill
parent 0842bc0ca5
commit 24c3bebc5c

View file

@ -167,7 +167,7 @@ static void sssp_bfs(void) {
} }
for splay_each(edge_t, e, n->edge_tree) { /* "e" is the edge connected to "from" */ for splay_each(edge_t, e, n->edge_tree) { /* "e" is the edge connected to "from" */
if(!e->reverse) if(!e->reverse || e->to == myself)
continue; continue;
/* Situation: /* Situation:
@ -191,7 +191,7 @@ static void sssp_bfs(void) {
if(e->to->status.visited if(e->to->status.visited
&& (!e->to->status.indirect || indirect) && (!e->to->status.indirect || indirect)
&& (e->to->prevedge && (e->to->distance != n->distance + 1 || e->weight >= e->to->prevedge->weight))) && (e->to->distance != n->distance + 1 || e->weight >= e->to->prevedge->weight))
continue; continue;
// Only update nexthop if it doesn't increase the path length // Only update nexthop if it doesn't increase the path length