X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Faga%2Faga.c;h=a6e0539dc8ee53502f3d36c3428fd29d838b7a1a;hb=42d7b648bd295e2204c5d064256fb1ad382b41c9;hp=f27f9f3034e7a34c6efc0f6a830769d3f28e3d08;hpb=3b7409ea08a7d1643bc7de31ece63e20b89f319b;p=ccan diff --git a/ccan/aga/aga.c b/ccan/aga/aga.c index f27f9f30..a6e0539d 100644 --- a/ccan/aga/aga.c +++ b/ccan/aga/aga.c @@ -15,7 +15,7 @@ void aga_init_graph_(struct aga_graph *g, aga_edge_info_fn edge_info) { g->sequence = 0; - g->error = 0; + g->error = AGA_ERR_NONE; g->first_edge = first_edge; g->next_edge = next_edge; @@ -54,13 +54,19 @@ bool aga_check_state(const struct aga_graph *g) void aga_finish(struct aga_graph *g) { assert(g->sequence & 1); - g->error = 0; + g->error = AGA_ERR_NONE; g->sequence++; } +bool aga_node_needs_update(const struct aga_graph *g, + const struct aga_node *node) +{ + return (node->sequence != g->sequence); +} + bool aga_update_node(const struct aga_graph *g, struct aga_node *node) { - if (node->sequence == g->sequence) + if (!aga_node_needs_update(g, node)) return false; node->sequence = g->sequence; @@ -87,6 +93,7 @@ int aga_edge_info(const struct aga_graph *g, const struct aga_node *n, int rc; ei->to = NULL; + ei->icost = 1; rc = g->edge_info(g, n, e, ei); assert(rc <= 0); return rc;