
On Thu, 6 May 2010, Arman Khalatyan wrote:
Thanks for pointing it. The incremental_components is still broken. The bug is not fixed yet. Using valgrind I see it:
An undirected graph (edge list): (0,1) (1,4) (4,0) (2,5)
==8635== Invalid read of size 8 ==8635== at 0x40201F: unsigned long boost::detail::find_representative_with_full_compression<unsigned long*, unsigned long>(unsigned long*, unsigned long) (disjoint_sets.hpp:33) ==8635== by 0x401A7E: unsigned long boost::find_with_full_path_compression::operator()<unsigned long*, unsigned long>(unsigned long*, unsigned long) (disjoint_sets.hpp:30) ==8635== by 0x401444: int boost::disjoint_sets_with_storage<boost::typed_identity_property_map<unsigned long>, boost::typed_identity_property_map<unsigned long>, boost::find_with_full_path_compression>::find_set<int>(int) (disjoint_sets.hpp:167) ==8635== by 0x401A2A: void boost::disjoint_sets_with_storage<boost::typed_identity_property_map<unsigned long>, boost::typed_identity_property_map<unsigned long>, boost::find_with_full_path_compression>::union_set<int>(int, int) (disjoint_sets.hpp:161) ==8635== by 0x40139D: void boost::incremental_components<boost::edge_list<std::pair<int, int>*, std::pair<int, int>, long, std::random_access_iterator_tag>, boost::disjoint_sets_with_storage<boost::typed_identity_property_map<unsigned long>, boost::typed_identity_property_map<unsigned long>, boost::find_with_full_path_compression> >(boost::edge_list<std::pair<int, int>*, std::pair<int, int>, long, std::random_access_iterator_tag>&, boost::disjoint_sets_with_storage<boost::typed_identity_property_map<unsigned long>, boost::typed_identity_property_map<unsigned long>, boost::find_with_full_path_compression>&) (incremental_components.hpp:59) ==8635== by 0x400DD2: main (components_on_edgelist.cpp:72) ==
Do you have a complete source file I can try out to reproduce this? -- Jeremiah Willcock