extern splay_tree_t edge_weight_tree; /* Tree with all known edges sorted on weight */
extern void exit_edges(void);
extern splay_tree_t edge_weight_tree; /* Tree with all known edges sorted on weight */
extern void exit_edges(void);
-extern splay_tree_t *new_edge_tree(void) __attribute__((__malloc__));
-extern void free_edge_tree(splay_tree_t *edge_tree);
+extern edge_t *new_edge(void) ATTR_MALLOC ATTR_DEALLOCATOR(free_edge);
+extern void init_edge_tree(splay_tree_t *tree);
extern void edge_add(edge_t *e);
extern void edge_del(edge_t *e);
extern edge_t *lookup_edge(struct node_t *from, struct node_t *to);
extern void edge_add(edge_t *e);
extern void edge_del(edge_t *e);
extern edge_t *lookup_edge(struct node_t *from, struct node_t *to);