In sssp_bfs(), never try to update myself.

This commit is contained in:
Guus Sliepen 2015-07-22 14:33:56 +02:00
parent f75e6f61f2
commit 56a8b90d86

View file

@ -149,7 +149,7 @@ static void sssp_bfs(void) {
abort();
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;
/* Situation:
@ -173,7 +173,7 @@ static void sssp_bfs(void) {
if(e->to->status.visited
&& (!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;
// Only update nexthop if it doesn't increase the path length