Browse Source

gossipd: free channels in routing_state destructor.

Cleans up the tests.

Suggested-by: @ZmnSCPxj
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
htlc_accepted_hook
Rusty Russell 6 years ago
parent
commit
654e89b5fc
  1. 11
      gossipd/routing.c
  2. 7
      gossipd/test/run-bench-find_route.c
  3. 7
      gossipd/test/run-find_route-specific.c
  4. 7
      gossipd/test/run-find_route.c
  5. 7
      gossipd/test/run-overlong.c

11
gossipd/routing.c

@ -154,6 +154,16 @@ struct chan *next_chan(const struct node *node, struct chan_map_iter *i)
return chan_map_next(&node->chans.map, i);
}
static void destroy_routing_state(struct routing_state *rstate)
{
/* Since we omitted destructors on these, clean up manually */
u64 idx;
for (struct chan *chan = uintmap_first(&rstate->chanmap, &idx);
chan;
chan = uintmap_after(&rstate->chanmap, &idx))
free_chan(rstate, chan);
}
struct routing_state *new_routing_state(const tal_t *ctx,
const struct chainparams *chainparams,
const struct node_id *local_id,
@ -188,6 +198,7 @@ struct routing_state *new_routing_state(const tal_t *ctx,
} else
rstate->gossip_time = NULL;
#endif
tal_add_destructor(rstate, destroy_routing_state);
return rstate;
}

7
gossipd/test/run-bench-find_route.c

@ -278,13 +278,6 @@ int main(int argc, char *argv[])
if (route_lengths[i])
printf(" Length %zu: %zu\n", i, route_lengths[i]);
/* Since we omitted destructors on these, clean up manually */
u64 idx;
for (struct chan *chan = uintmap_first(&rstate->chanmap, &idx);
chan;
chan = uintmap_after(&rstate->chanmap, &idx))
free_chan(rstate, chan);
tal_free(tmpctx);
secp256k1_context_destroy(secp256k1_ctx);
opt_free_table();

7
gossipd/test/run-find_route-specific.c

@ -261,13 +261,6 @@ int main(void)
ROUTING_MAX_HOPS, &fee);
assert(!route);
/* Since we omitted destructors on these, clean up manually */
u64 idx;
for (struct chan *chan = uintmap_first(&rstate->chanmap, &idx);
chan;
chan = uintmap_after(&rstate->chanmap, &idx))
free_chan(rstate, chan);
tal_free(tmpctx);
secp256k1_context_destroy(secp256k1_ctx);
return 0;

7
gossipd/test/run-find_route.c

@ -278,13 +278,6 @@ int main(void)
assert(channel_is_between(route[1], &d, &c));
assert(amount_msat_eq(fee, AMOUNT_MSAT(0 + 6)));
/* Since we omitted destructors on these, clean up manually */
u64 idx;
for (struct chan *chan = uintmap_first(&rstate->chanmap, &idx);
chan;
chan = uintmap_after(&rstate->chanmap, &idx))
free_chan(rstate, chan);
tal_free(tmpctx);
secp256k1_context_destroy(secp256k1_ctx);
return 0;

7
gossipd/test/run-overlong.c

@ -197,13 +197,6 @@ int main(void)
last_fee = fee;
}
/* Since we omitted destructors on these, clean up manually */
u64 idx;
for (struct chan *chan = uintmap_first(&rstate->chanmap, &idx);
chan;
chan = uintmap_after(&rstate->chanmap, &idx))
free_chan(rstate, chan);
tal_free(tmpctx);
secp256k1_context_destroy(secp256k1_ctx);
return 0;

Loading…
Cancel
Save