diff --git a/src/graph.c b/src/graph.c index 836661fd..72de4f03 100644 --- a/src/graph.c +++ b/src/graph.c @@ -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" */ - if(!e->reverse) + if(!e->reverse || e->to == myself) continue; /* Situation: @@ -191,7 +191,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