Opened 14 years ago
Closed 14 years ago
#2550 closed Bugs (fixed)
remove_edge may invalidate number of edges
Reported by: | Owned by: | Douglas Gregor | |
---|---|---|---|
Milestone: | Boost 1.38.0 | Component: | graph |
Version: | Boost 1.37.0 | Severity: | Problem |
Keywords: | remove edge | Cc: |
Description
I already posted about this problem on the mailing list, but was asked to file the problem here.
Using an adjacency_matrix and trying to remove an edge that doesn't exist in the graph invalidates the number of edges. The code in the header shows this:
template <typename D, typename VP, typename EP, typename GP, typename A> void remove_edge(typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor u, typename adjacency_matrix<D,VP,EP,GP,A>::vertex_descriptor v, adjacency_matrix<D,VP,EP,GP,A>& g) {
--(g.m_num_edges); detail::set_edge_exists(g.get_edge(u,v), false, 0);
}
The counter is decrement in either case. Cheers.
Fixed (r50191).