Open
Description
When calling remove_vertex
on a labeled_graph
the vertex is removed but the label is not.
A dangling reference to the vertex is left behind. Accessing it causes segfaults.
Minimal example:
#include <iostream>
#include <string>
#include <boost/graph/directed_graph.hpp>
#include <boost/graph/labeled_graph.hpp>
using namespace boost;
using namespace std;
int main() {
using namespace boost::graph_detail;
typedef directed_graph<> Digraph;
typedef labeled_graph<Digraph, string> Graph;
Graph g;
g.add_vertex("foo");
auto v = g.vertex("foo");
if(v != nullptr)
cout << "foo exists\n";
g.remove_vertex("foo");
auto v2 = g.vertex("foo");
if(v2 != nullptr)
std::cout << " BUG! vertex label still exists.\n";
return 0;
}