assert(tgt_node);
/* If edge are already deleted, we have nothing to do. */
- if (!is_connected(src_node, edge) || !is_connected(tgt_node, edge))
+ if (is_deleted(edge))
return;
#if KAPS_DUMP
disconnect_edge(src_node, edge);
disconnect_edge(tgt_node, edge);
+ edge->src = NULL;
+ edge->tgt = NULL;
+
reorder_node(src_node);
reorder_node(tgt_node);
}
+unsigned is_deleted(pbqp_edge *edge)
+{
+ unsigned deleted;
+
+ assert(edge);
+
+ deleted = (edge->src == NULL) && (edge-> tgt == NULL);
+
+ return deleted;
+}
+
pbqp_edge *pbqp_edge_deep_copy(pbqp *pbqp, pbqp_edge *edge,
pbqp_node *src_node, pbqp_node *tgt_node)
{
pbqp_node *src_node, pbqp_node *tgt_node);
void delete_edge(pbqp_edge *edge);
+unsigned is_deleted(pbqp_edge *edge);
#endif /* KAPS_PBQP_EDGE_H */