Boost logo

Boost-Commit :

From: daniel_james_at_[hidden]
Date: 2007-08-27 15:56:14


Author: danieljames
Date: 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
New Revision: 39016
URL: http://svn.boost.org/trac/boost/changeset/39016

Log:
Merge from trunk.
Added:
   branches/hash/boost/detail/sp_typeinfo.hpp
      - copied unchanged from r39014, /trunk/boost/detail/sp_typeinfo.hpp
   branches/hash/boost/graph/boyer_myrvold_planar_test.hpp
      - copied unchanged from r39014, /trunk/boost/graph/boyer_myrvold_planar_test.hpp
   branches/hash/boost/graph/chrobak_payne_drawing.hpp
      - copied unchanged from r39014, /trunk/boost/graph/chrobak_payne_drawing.hpp
   branches/hash/boost/graph/is_kuratowski_subgraph.hpp
      - copied unchanged from r39014, /trunk/boost/graph/is_kuratowski_subgraph.hpp
   branches/hash/boost/graph/is_straight_line_drawing.hpp
      - copied unchanged from r39014, /trunk/boost/graph/is_straight_line_drawing.hpp
   branches/hash/boost/graph/make_biconnected_planar.hpp
      - copied unchanged from r39014, /trunk/boost/graph/make_biconnected_planar.hpp
   branches/hash/boost/graph/make_connected.hpp
      - copied unchanged from r39014, /trunk/boost/graph/make_connected.hpp
   branches/hash/boost/graph/make_maximal_planar.hpp
      - copied unchanged from r39014, /trunk/boost/graph/make_maximal_planar.hpp
   branches/hash/boost/graph/planar_canonical_ordering.hpp
      - copied unchanged from r39014, /trunk/boost/graph/planar_canonical_ordering.hpp
   branches/hash/boost/graph/planar_detail/
      - copied from r39014, /trunk/boost/graph/planar_detail/
   branches/hash/boost/graph/planar_detail/add_edge_visitors.hpp
      - copied unchanged from r39014, /trunk/boost/graph/planar_detail/add_edge_visitors.hpp
   branches/hash/boost/graph/planar_detail/boyer_myrvold_impl.hpp
      - copied unchanged from r39014, /trunk/boost/graph/planar_detail/boyer_myrvold_impl.hpp
   branches/hash/boost/graph/planar_detail/bucket_sort.hpp
      - copied unchanged from r39014, /trunk/boost/graph/planar_detail/bucket_sort.hpp
   branches/hash/boost/graph/planar_detail/face_handles.hpp
      - copied unchanged from r39014, /trunk/boost/graph/planar_detail/face_handles.hpp
   branches/hash/boost/graph/planar_detail/face_iterators.hpp
      - copied unchanged from r39014, /trunk/boost/graph/planar_detail/face_iterators.hpp
   branches/hash/boost/graph/planar_face_traversal.hpp
      - copied unchanged from r39014, /trunk/boost/graph/planar_face_traversal.hpp
   branches/hash/boost/interprocess/smart_ptr/deleter.hpp
      - copied unchanged from r39014, /trunk/boost/interprocess/smart_ptr/deleter.hpp
   branches/hash/libs/config/test/boost_no_iosfwd.ipp
      - copied unchanged from r39014, /trunk/libs/config/test/boost_no_iosfwd.ipp
   branches/hash/libs/config/test/boost_no_iostream.ipp
      - copied unchanged from r39014, /trunk/libs/config/test/boost_no_iostream.ipp
   branches/hash/libs/config/test/boost_no_std_typeinfo.ipp
      - copied unchanged from r39014, /trunk/libs/config/test/boost_no_std_typeinfo.ipp
   branches/hash/libs/config/test/boost_no_typeid.ipp
      - copied unchanged from r39014, /trunk/libs/config/test/boost_no_typeid.ipp
   branches/hash/libs/config/test/has_concepts_fail.cpp
      - copied unchanged from r39014, /trunk/libs/config/test/has_concepts_fail.cpp
   branches/hash/libs/config/test/has_concepts_pass.cpp
      - copied unchanged from r39014, /trunk/libs/config/test/has_concepts_pass.cpp
   branches/hash/libs/config/test/has_rvalue_refs_fail.cpp
      - copied unchanged from r39014, /trunk/libs/config/test/has_rvalue_refs_fail.cpp
   branches/hash/libs/config/test/has_rvalue_refs_pass.cpp
      - copied unchanged from r39014, /trunk/libs/config/test/has_rvalue_refs_pass.cpp
   branches/hash/libs/config/test/has_static_assert_fail.cpp
      - copied unchanged from r39014, /trunk/libs/config/test/has_static_assert_fail.cpp
   branches/hash/libs/config/test/has_static_assert_pass.cpp
      - copied unchanged from r39014, /trunk/libs/config/test/has_static_assert_pass.cpp
   branches/hash/libs/config/test/has_variadic_tmpl_fail.cpp
      - copied unchanged from r39014, /trunk/libs/config/test/has_variadic_tmpl_fail.cpp
   branches/hash/libs/config/test/has_variadic_tmpl_pass.cpp
      - copied unchanged from r39014, /trunk/libs/config/test/has_variadic_tmpl_pass.cpp
   branches/hash/libs/config/test/no_iosfwd_fail.cpp
      - copied unchanged from r39014, /trunk/libs/config/test/no_iosfwd_fail.cpp
   branches/hash/libs/config/test/no_iosfwd_pass.cpp
      - copied unchanged from r39014, /trunk/libs/config/test/no_iosfwd_pass.cpp
   branches/hash/libs/config/test/no_iostream_fail.cpp
      - copied unchanged from r39014, /trunk/libs/config/test/no_iostream_fail.cpp
   branches/hash/libs/config/test/no_iostream_pass.cpp
      - copied unchanged from r39014, /trunk/libs/config/test/no_iostream_pass.cpp
   branches/hash/libs/config/test/no_std_typeinfo_fail.cpp
      - copied unchanged from r39014, /trunk/libs/config/test/no_std_typeinfo_fail.cpp
   branches/hash/libs/config/test/no_std_typeinfo_pass.cpp
      - copied unchanged from r39014, /trunk/libs/config/test/no_std_typeinfo_pass.cpp
   branches/hash/libs/config/test/no_typeid_fail.cpp
      - copied unchanged from r39014, /trunk/libs/config/test/no_typeid_fail.cpp
   branches/hash/libs/config/test/no_typeid_pass.cpp
      - copied unchanged from r39014, /trunk/libs/config/test/no_typeid_pass.cpp
   branches/hash/libs/graph/doc/AddEdgeVisitor.html
      - copied unchanged from r39014, /trunk/libs/graph/doc/AddEdgeVisitor.html
   branches/hash/libs/graph/doc/PlanarEmbedding.html
      - copied unchanged from r39014, /trunk/libs/graph/doc/PlanarEmbedding.html
   branches/hash/libs/graph/doc/PlanarFaceVisitor.html
      - copied unchanged from r39014, /trunk/libs/graph/doc/PlanarFaceVisitor.html
   branches/hash/libs/graph/doc/boyer_myrvold.html
      - copied unchanged from r39014, /trunk/libs/graph/doc/boyer_myrvold.html
   branches/hash/libs/graph/doc/figs/canonical_ordering.png
      - copied unchanged from r39014, /trunk/libs/graph/doc/figs/canonical_ordering.png
   branches/hash/libs/graph/doc/figs/embedding_illustration.png
      - copied unchanged from r39014, /trunk/libs/graph/doc/figs/embedding_illustration.png
   branches/hash/libs/graph/doc/figs/face_illustration.png
      - copied unchanged from r39014, /trunk/libs/graph/doc/figs/face_illustration.png
   branches/hash/libs/graph/doc/figs/face_traversal_example.png
      - copied unchanged from r39014, /trunk/libs/graph/doc/figs/face_traversal_example.png
   branches/hash/libs/graph/doc/figs/k_5_and_k_3_3.png
      - copied unchanged from r39014, /trunk/libs/graph/doc/figs/k_5_and_k_3_3.png
   branches/hash/libs/graph/doc/figs/planar_plane_straight_line.png
      - copied unchanged from r39014, /trunk/libs/graph/doc/figs/planar_plane_straight_line.png
   branches/hash/libs/graph/doc/figs/straight_line_drawing.png
      - copied unchanged from r39014, /trunk/libs/graph/doc/figs/straight_line_drawing.png
   branches/hash/libs/graph/doc/is_kuratowski_subgraph.html
      - copied unchanged from r39014, /trunk/libs/graph/doc/is_kuratowski_subgraph.html
   branches/hash/libs/graph/doc/is_straight_line_drawing.html
      - copied unchanged from r39014, /trunk/libs/graph/doc/is_straight_line_drawing.html
   branches/hash/libs/graph/doc/make_biconnected_planar.html
      - copied unchanged from r39014, /trunk/libs/graph/doc/make_biconnected_planar.html
   branches/hash/libs/graph/doc/make_connected.html
      - copied unchanged from r39014, /trunk/libs/graph/doc/make_connected.html
   branches/hash/libs/graph/doc/make_maximal_planar.html
      - copied unchanged from r39014, /trunk/libs/graph/doc/make_maximal_planar.html
   branches/hash/libs/graph/doc/planar_canonical_ordering.html
      - copied unchanged from r39014, /trunk/libs/graph/doc/planar_canonical_ordering.html
   branches/hash/libs/graph/doc/planar_face_traversal.html
      - copied unchanged from r39014, /trunk/libs/graph/doc/planar_face_traversal.html
   branches/hash/libs/graph/doc/planar_graphs.html
      - copied unchanged from r39014, /trunk/libs/graph/doc/planar_graphs.html
   branches/hash/libs/graph/doc/straight_line_drawing.html
      - copied unchanged from r39014, /trunk/libs/graph/doc/straight_line_drawing.html
   branches/hash/libs/graph/example/canonical_ordering.cpp
      - copied unchanged from r39014, /trunk/libs/graph/example/canonical_ordering.cpp
   branches/hash/libs/graph/example/kuratowski_subgraph.cpp
      - copied unchanged from r39014, /trunk/libs/graph/example/kuratowski_subgraph.cpp
   branches/hash/libs/graph/example/make_biconnected_planar.cpp
      - copied unchanged from r39014, /trunk/libs/graph/example/make_biconnected_planar.cpp
   branches/hash/libs/graph/example/make_connected.cpp
      - copied unchanged from r39014, /trunk/libs/graph/example/make_connected.cpp
   branches/hash/libs/graph/example/make_maximal_planar.cpp
      - copied unchanged from r39014, /trunk/libs/graph/example/make_maximal_planar.cpp
   branches/hash/libs/graph/example/planar_face_traversal.cpp
      - copied unchanged from r39014, /trunk/libs/graph/example/planar_face_traversal.cpp
   branches/hash/libs/graph/example/simple_planarity_test.cpp
      - copied unchanged from r39014, /trunk/libs/graph/example/simple_planarity_test.cpp
   branches/hash/libs/graph/example/straight_line_drawing.cpp
      - copied unchanged from r39014, /trunk/libs/graph/example/straight_line_drawing.cpp
   branches/hash/libs/graph/test/all_planar_input_files_test.cpp
      - copied unchanged from r39014, /trunk/libs/graph/test/all_planar_input_files_test.cpp
   branches/hash/libs/graph/test/basic_planarity_test.cpp
      - copied unchanged from r39014, /trunk/libs/graph/test/basic_planarity_test.cpp
   branches/hash/libs/graph/test/make_biconnected_planar_test.cpp
      - copied unchanged from r39014, /trunk/libs/graph/test/make_biconnected_planar_test.cpp
   branches/hash/libs/graph/test/make_connected_test.cpp
      - copied unchanged from r39014, /trunk/libs/graph/test/make_connected_test.cpp
   branches/hash/libs/graph/test/make_maximal_planar_test.cpp
      - copied unchanged from r39014, /trunk/libs/graph/test/make_maximal_planar_test.cpp
   branches/hash/libs/graph/test/parallel_edges_loops_test.cpp
      - copied unchanged from r39014, /trunk/libs/graph/test/parallel_edges_loops_test.cpp
   branches/hash/libs/graph/test/planar_input_graphs/
      - copied from r39014, /trunk/libs/graph/test/planar_input_graphs/
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_1000_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_100_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_10_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_11_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_12_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_13_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_14_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_15_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_16_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_17_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_18_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_19_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_20_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_30_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_40_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_50_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_7_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_8_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_expansion_9_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_3_3_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_100_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_10_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_11_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_12_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_13_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_14_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_15_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_16_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_17_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_18_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_19_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_20_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_30_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_40_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_50_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_6_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_7_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_8_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_expansion_9_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_K_5_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_K_5_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_A_1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_A_1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_B_1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_B_1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_B_2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_B_2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_B_with_short_circuit.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_B_with_short_circuit.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_B_with_short_circuit_large.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_B_with_short_circuit_large.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_B_z_w_walkup_patching.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_B_z_w_walkup_patching.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_C_1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_C_10.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_10.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_C_11.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_11.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_C_2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_C_3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_C_4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_C_5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_C_6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_C_7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_C_8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_C_9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_C_9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_D_1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_D_1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_D_2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_D_2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_D_3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_D_3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_D_4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_D_4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_D_5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_D_5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_E_1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_E_1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_E_2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_E_2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_E_3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_E_3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_E_4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_E_4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_E_5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_E_5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_E_6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_E_6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_case_E_7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_case_E_7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_lopsided_case_D.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_lopsided_case_D.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_100_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_10_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_30_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_maximal_plus_one_50_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_peterson.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_peterson_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_peterson_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_peterson_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_peterson_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_peterson_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_peterson_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_peterson_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_peterson_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_peterson_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_peterson_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_peterson_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/nonplanar_twisted_short_circuit_edge.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/nonplanar_twisted_short_circuit_edge.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_a_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_b_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_c_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_d_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_5_connected_cycles_e_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_1_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_2_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_3_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_4_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_5_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_6_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_7_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_8_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_3_3_subgraph_9_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_100_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_10_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_11_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_12_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_13_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_14_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_15_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_16_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_17_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_18_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_19_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_20_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_21_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_25_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_30_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_50_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_5_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_6_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_7_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_8_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_expansion_9_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_4_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_4_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_10_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_1_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_2_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_3_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_4_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_5_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_6_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_7_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_8_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_K_5_subgraph_9_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_cycle_1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_cycle_1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_cycle_1_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_cycle_1_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_cycle_1_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_cycle_1_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_cycle_1_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_cycle_1_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_cycle_1_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_cycle_1_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_cycle_1_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_cycle_1_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_cycle_1_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_grid_graph.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_grid_graph.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_grid_graph_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_grid_graph_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_grid_graph_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_grid_graph_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_grid_graph_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_grid_graph_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_grid_graph_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_grid_graph_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_grid_graph_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_grid_graph_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_grid_graph_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_1_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_1_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_1_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_1_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_1_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_1_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_1_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_1_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_1_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_1_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_1_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_1_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_1_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_1_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_1_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_1_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_1_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_1_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_1_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_1_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_2_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_2_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_2_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_2_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_2_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_2_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_2_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_2_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_2_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_2_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_2_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_2_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_2_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_2_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_2_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_2_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_2_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_2_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_line_2_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_line_2_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_10.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_10.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_100.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_100.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_100_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_100_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_100_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_100_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_100_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_100_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_100_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_100_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_100_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_100_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_100_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_10_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_10_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_10_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_10_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_10_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_10_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_10_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_10_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_10_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_10_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_10_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_30.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_30.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_30_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_30_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_30_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_30_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_30_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_30_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_30_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_30_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_30_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_30_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_30_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_3_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_3_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_3_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_3_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_3_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_3_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_3_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_3_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_3_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_3_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_3_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_50.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_50.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_50_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_50_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_50_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_50_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_50_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_50_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_50_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_50_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_50_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_maximal_50_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_maximal_50_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_non_biconnected_1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_non_biconnected_1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_non_biconnected_2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_non_biconnected_2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_non_connected.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_non_connected.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_non_connected_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_non_connected_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_non_connected_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_non_connected_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_non_connected_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_non_connected_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_non_connected_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_non_connected_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_non_connected_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_non_connected_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_non_connected_p9.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_tree_1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_tree_1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_tree_1_p0.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p0.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_tree_1_p1.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p1.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_tree_1_p2.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p2.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_tree_1_p3.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p3.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_tree_1_p4.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p4.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_tree_1_p5.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p5.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_tree_1_p6.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p6.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_tree_1_p7.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p7.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_tree_1_p8.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p8.dimacs
   branches/hash/libs/graph/test/planar_input_graphs/planar_tree_1_p9.dimacs
      - copied unchanged from r39014, /trunk/libs/graph/test/planar_input_graphs/planar_tree_1_p9.dimacs
   branches/hash/libs/interprocess/test/get_process_id_name.hpp
      - copied unchanged from r39014, /trunk/libs/interprocess/test/get_process_id_name.hpp
Removed:
   branches/hash/boost/interprocess/containers/detail/tree_func.hpp
   branches/hash/boost/interprocess/containers/tree.hpp
   branches/hash/boost/interprocess/detail/multi_segment_services.hpp
   branches/hash/boost/interprocess/intersegment_ptr.hpp
   branches/hash/boost/interprocess/managed_multi_shared_memory.hpp
   branches/hash/boost/interprocess/mem_algo/multi_simple_seq_fit.hpp
   branches/hash/boost/interprocess/smart_ptr/detail/sp_counted_base_pt.hpp
   branches/hash/boost/interprocess/smart_ptr/detail/sp_counted_base_w32.hpp
   branches/hash/boost/interprocess/smart_ptr/segment_deleter.hpp
   branches/hash/libs/interprocess/doc/code/
   branches/hash/libs/interprocess/test/file_lock_test.cpp
Properties modified:
   branches/hash/ (props changed)
   branches/hash/tools/build/v2/nightly.sh (contents, props changed)
   branches/hash/tools/build/v2/roll.sh (contents, props changed)
Text files modified:
   branches/hash/boost/detail/shared_count.hpp | 3
   branches/hash/boost/detail/sp_counted_base_cw_ppc.hpp | 4
   branches/hash/boost/detail/sp_counted_base_cw_x86.hpp | 4
   branches/hash/boost/detail/sp_counted_base_gcc_ia64.hpp | 4
   branches/hash/boost/detail/sp_counted_base_gcc_ppc.hpp | 4
   branches/hash/boost/detail/sp_counted_base_gcc_sparc.hpp | 4
   branches/hash/boost/detail/sp_counted_base_gcc_x86.hpp | 4
   branches/hash/boost/detail/sp_counted_base_nt.hpp | 4
   branches/hash/boost/detail/sp_counted_base_pt.hpp | 4
   branches/hash/boost/detail/sp_counted_base_solaris.hpp | 4
   branches/hash/boost/detail/sp_counted_base_sync.hpp | 4
   branches/hash/boost/detail/sp_counted_base_w32.hpp | 4
   branches/hash/boost/detail/sp_counted_impl.hpp | 11 +-
   branches/hash/boost/interprocess/containers/detail/node_alloc_holder.hpp | 2
   branches/hash/boost/interprocess/containers/detail/tree.hpp | 20 ++--
   branches/hash/boost/interprocess/detail/algorithms.hpp | 29 ++++++
   branches/hash/boost/interprocess/detail/os_thread_functions.hpp | 8 +
   branches/hash/boost/interprocess/detail/utilities.hpp | 24 -----
   branches/hash/boost/interprocess/detail/win32_api.hpp | 50 +++++++++++
   branches/hash/boost/interprocess/indexes/iunordered_set_index.hpp | 2
   branches/hash/boost/shared_array.hpp | 18 ++++
   branches/hash/boost/shared_ptr.hpp | 8
   branches/hash/libs/config/doc/html/boost_config/acknowledgements.html | 4
   branches/hash/libs/config/doc/html/boost_config/boost_macro_reference.html | 112 +++++++++++++++++++++++---
   branches/hash/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html | 4
   branches/hash/libs/config/doc/html/boost_config/rationale.html | 4
   branches/hash/libs/config/doc/html/index.html | 8
   branches/hash/libs/config/doc/macro_reference.qbk | 12 ++
   branches/hash/libs/config/test/Jamfile.v2 | 30 ++++++
   branches/hash/libs/config/test/config_info.cpp | 9 ++
   branches/hash/libs/config/test/config_test.cpp | 82 +++++++++++++++++++
   branches/hash/libs/functional/hash/doc/ref.xml | 11 ++
   branches/hash/libs/functional/hash/test/Jamfile.v2 | 4
   branches/hash/libs/graph/doc/bibliography.html | 22 +++++
   branches/hash/libs/graph/doc/history.html | 2
   branches/hash/libs/graph/doc/table_of_contents.html | 23 +++++
   branches/hash/libs/graph/test/Jamfile.v2 | 20 ++++
   branches/hash/libs/interprocess/test/allocator_v1.hpp | 55 +++++--------
   branches/hash/libs/interprocess/test/allocexcept_test.cpp | 4
   branches/hash/libs/interprocess/test/check_equal_containers.hpp | 6 +
   branches/hash/libs/interprocess/test/data_test.cpp | 10 +-
   branches/hash/libs/interprocess/test/deque_test.cpp | 4
   branches/hash/libs/interprocess/test/dummy_test_allocator.hpp | 31 +++---
   branches/hash/libs/interprocess/test/expand_bwd_test_allocator.hpp | 33 +++----
   branches/hash/libs/interprocess/test/file_mapping_test.cpp | 14 +-
   branches/hash/libs/interprocess/test/flat_tree_test.cpp | 5 +
   branches/hash/libs/interprocess/test/intrusive_ptr_test.cpp | 16 ---
   branches/hash/libs/interprocess/test/list_test.hpp | 4
   branches/hash/libs/interprocess/test/managed_mapped_file_test.cpp | 4
   branches/hash/libs/interprocess/test/managed_windows_shared_memory_test.cpp | 4
   branches/hash/libs/interprocess/test/map_test.hpp | 6
   branches/hash/libs/interprocess/test/mapped_file_test.cpp | 4
   branches/hash/libs/interprocess/test/memory_algorithm_test.cpp | 4
   branches/hash/libs/interprocess/test/message_queue_test.cpp | 24 ++--
   branches/hash/libs/interprocess/test/named_allocation_test_template.hpp | 4
   branches/hash/libs/interprocess/test/named_condition_test.cpp | 40 ++++----
   branches/hash/libs/interprocess/test/named_mutex_test.cpp | 18 ++--
   branches/hash/libs/interprocess/test/named_recursive_mutex_test.cpp | 18 ++--
   branches/hash/libs/interprocess/test/named_semaphore_test.cpp | 4
   branches/hash/libs/interprocess/test/named_upgradable_mutex_test.cpp | 18 ++--
   branches/hash/libs/interprocess/test/node_pool_test.cpp | 24 ++++-
   branches/hash/libs/interprocess/test/null_index_test.cpp | 8
   branches/hash/libs/interprocess/test/set_test.hpp | 164 ++++++++++++++++++++++++++++++---------
   branches/hash/libs/interprocess/test/shared_memory_mapping_test.cpp | 16 +-
   branches/hash/libs/interprocess/test/shared_memory_test.cpp | 4
   branches/hash/libs/interprocess/test/shared_ptr_test.cpp | 43 +++++-----
   branches/hash/libs/interprocess/test/string_test.cpp | 14 +-
   branches/hash/libs/interprocess/test/tree_test.cpp | 2
   branches/hash/libs/interprocess/test/unique_ptr_test.cpp | 51 +++--------
   branches/hash/libs/interprocess/test/vector_test.cpp | 32 +++++--
   branches/hash/libs/interprocess/test/windows_shared_memory_mapping_test.cpp | 14 +-
   branches/hash/libs/interprocess/test/windows_shared_memory_test.cpp | 8
   branches/hash/libs/program_options/src/options_description.cpp | 10 +-
   branches/hash/libs/regex/doc/html/boost_regex/background_information/examples.html | 6
   branches/hash/libs/regex/doc/html/boost_regex/background_information/history.html | 8
   branches/hash/libs/regex/doc/html/boost_regex/background_information/standards.html | 6
   branches/hash/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html | 6
   branches/hash/libs/regex/doc/html/index.html | 2
   branches/hash/libs/regex/doc/icu_strings.qbk | 4
   branches/hash/libs/regex/example/snippets/icu_example.cpp | 4
   branches/hash/more/formal_review_schedule.html | 2
   branches/hash/tools/build/v2/build/virtual-target.jam | 93 +++++++++++++--------
   branches/hash/tools/build/v2/nightly.sh | 2
   branches/hash/tools/build/v2/roll.sh | 12 +
   branches/hash/tools/build/v2/test/BoostBuild.py | 22 +++-
   branches/hash/tools/build/v2/test/regression.py | 2
   branches/hash/tools/build/v2/tools/builtin.jam | 29 +++---
   branches/hash/tools/build/v2/tools/sun.jam | 17 ++++
   branches/hash/tools/build/v2/util/path.jam | 9 +
   branches/hash/tools/regression/library_status.cpp | 50 +++++------
   branches/hash/tools/regression/process_jam_log.cpp | 72 +++++++++--------
   branches/hash/tools/regression/xsl_reports/runner/regression.py | 2
   92 files changed, 1051 insertions(+), 583 deletions(-)

Modified: branches/hash/boost/detail/shared_count.hpp
==============================================================================
--- branches/hash/boost/detail/shared_count.hpp (original)
+++ branches/hash/boost/detail/shared_count.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -32,7 +32,6 @@
 #include <memory> // std::auto_ptr
 #include <functional> // std::less
 #include <new> // std::bad_alloc
-#include <typeinfo> // std::type_info in get_deleter
 
 namespace boost
 {
@@ -259,7 +258,7 @@
         return std::less<sp_counted_base *>()( a.pi_, b.pi_ );
     }
 
- void * get_deleter(std::type_info const & ti) const
+ void * get_deleter( sp_typeinfo const & ti ) const
     {
         return pi_? pi_->get_deleter( ti ): 0;
     }

Modified: branches/hash/boost/detail/sp_counted_base_cw_ppc.hpp
==============================================================================
--- branches/hash/boost/detail/sp_counted_base_cw_ppc.hpp (original)
+++ branches/hash/boost/detail/sp_counted_base_cw_ppc.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -24,7 +24,7 @@
 // formulation
 //
 
-#include <typeinfo>
+#include "sp_typeinfo.hpp"
 
 namespace boost
 {
@@ -123,7 +123,7 @@
         delete this;
     }
 
- virtual void * get_deleter( std::type_info const & ti ) = 0;
+ virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
 
     void add_ref_copy()
     {

Modified: branches/hash/boost/detail/sp_counted_base_cw_x86.hpp
==============================================================================
--- branches/hash/boost/detail/sp_counted_base_cw_x86.hpp (original)
+++ branches/hash/boost/detail/sp_counted_base_cw_x86.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -25,7 +25,7 @@
 // formulation
 //
 
-#include <typeinfo>
+#include "sp_typeinfo.hpp"
 
 namespace boost
 {
@@ -111,7 +111,7 @@
         delete this;
     }
 
- virtual void * get_deleter( std::type_info const & ti ) = 0;
+ virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
 
     void add_ref_copy()
     {

Modified: branches/hash/boost/detail/sp_counted_base_gcc_ia64.hpp
==============================================================================
--- branches/hash/boost/detail/sp_counted_base_gcc_ia64.hpp (original)
+++ branches/hash/boost/detail/sp_counted_base_gcc_ia64.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -16,7 +16,7 @@
 // Lock-free algorithm by Alexander Terekhov
 //
 
-#include <typeinfo>
+#include "sp_typeinfo.hpp"
 
 namespace boost
 {
@@ -110,7 +110,7 @@
         delete this;
     }
 
- virtual void * get_deleter( std::type_info const & ti ) = 0;
+ virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
 
     void add_ref_copy()
     {

Modified: branches/hash/boost/detail/sp_counted_base_gcc_ppc.hpp
==============================================================================
--- branches/hash/boost/detail/sp_counted_base_gcc_ppc.hpp (original)
+++ branches/hash/boost/detail/sp_counted_base_gcc_ppc.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -24,7 +24,7 @@
 // formulation
 //
 
-#include <typeinfo>
+#include "sp_typeinfo.hpp"
 
 namespace boost
 {
@@ -134,7 +134,7 @@
         delete this;
     }
 
- virtual void * get_deleter( std::type_info const & ti ) = 0;
+ virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
 
     void add_ref_copy()
     {

Modified: branches/hash/boost/detail/sp_counted_base_gcc_sparc.hpp
==============================================================================
--- branches/hash/boost/detail/sp_counted_base_gcc_sparc.hpp (original)
+++ branches/hash/boost/detail/sp_counted_base_gcc_sparc.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -19,7 +19,7 @@
 //
 // Thanks to Michael van der Westhuizen
 
-#include <typeinfo>
+#include "sp_typeinfo.hpp"
 #include <inttypes.h> // int32_t
 
 namespace boost
@@ -119,7 +119,7 @@
         delete this;
     }
 
- virtual void * get_deleter( std::type_info const & ti ) = 0;
+ virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
 
     void add_ref_copy()
     {

Modified: branches/hash/boost/detail/sp_counted_base_gcc_x86.hpp
==============================================================================
--- branches/hash/boost/detail/sp_counted_base_gcc_x86.hpp (original)
+++ branches/hash/boost/detail/sp_counted_base_gcc_x86.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -24,7 +24,7 @@
 // formulation
 //
 
-#include <typeinfo>
+#include "sp_typeinfo.hpp"
 
 namespace boost
 {
@@ -126,7 +126,7 @@
         delete this;
     }
 
- virtual void * get_deleter( std::type_info const & ti ) = 0;
+ virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
 
     void add_ref_copy()
     {

Modified: branches/hash/boost/detail/sp_counted_base_nt.hpp
==============================================================================
--- branches/hash/boost/detail/sp_counted_base_nt.hpp (original)
+++ branches/hash/boost/detail/sp_counted_base_nt.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -18,7 +18,7 @@
 // http://www.boost.org/LICENSE_1_0.txt)
 //
 
-#include <typeinfo>
+#include "sp_typeinfo.hpp"
 
 namespace boost
 {
@@ -58,7 +58,7 @@
         delete this;
     }
 
- virtual void * get_deleter( std::type_info const & ti ) = 0;
+ virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
 
     void add_ref_copy()
     {

Modified: branches/hash/boost/detail/sp_counted_base_pt.hpp
==============================================================================
--- branches/hash/boost/detail/sp_counted_base_pt.hpp (original)
+++ branches/hash/boost/detail/sp_counted_base_pt.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -18,7 +18,7 @@
 // http://www.boost.org/LICENSE_1_0.txt)
 //
 
-#include <typeinfo>
+#include "sp_typeinfo.hpp"
 #include <pthread.h>
 
 namespace boost
@@ -69,7 +69,7 @@
         delete this;
     }
 
- virtual void * get_deleter( std::type_info const & ti ) = 0;
+ virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
 
     void add_ref_copy()
     {

Modified: branches/hash/boost/detail/sp_counted_base_solaris.hpp
==============================================================================
--- branches/hash/boost/detail/sp_counted_base_solaris.hpp (original)
+++ branches/hash/boost/detail/sp_counted_base_solaris.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -20,7 +20,7 @@
 // formulation
 //
 
-#include <typeinfo>
+#include "sp_typeinfo.hpp"
 #include <atomic.h>
 
 namespace boost
@@ -61,7 +61,7 @@
         delete this;
     }
 
- virtual void * get_deleter( std::type_info const & ti ) = 0;
+ virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
 
     void add_ref_copy()
     {

Modified: branches/hash/boost/detail/sp_counted_base_sync.hpp
==============================================================================
--- branches/hash/boost/detail/sp_counted_base_sync.hpp (original)
+++ branches/hash/boost/detail/sp_counted_base_sync.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -15,7 +15,7 @@
 // See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt
 
-#include <typeinfo>
+#include "sp_typeinfo.hpp"
 #include <limits.h>
 
 namespace boost
@@ -104,7 +104,7 @@
         delete this;
     }
 
- virtual void * get_deleter( std::type_info const & ti ) = 0;
+ virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
 
     void add_ref_copy()
     {

Modified: branches/hash/boost/detail/sp_counted_base_w32.hpp
==============================================================================
--- branches/hash/boost/detail/sp_counted_base_w32.hpp (original)
+++ branches/hash/boost/detail/sp_counted_base_w32.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -26,7 +26,7 @@
 
 #include <boost/detail/interlocked.hpp>
 #include <boost/detail/workaround.hpp>
-#include <typeinfo>
+#include "sp_typeinfo.hpp"
 
 namespace boost
 {
@@ -66,7 +66,7 @@
         delete this;
     }
 
- virtual void * get_deleter( std::type_info const & ti ) = 0;
+ virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
 
     void add_ref_copy()
     {

Modified: branches/hash/boost/detail/sp_counted_impl.hpp
==============================================================================
--- branches/hash/boost/detail/sp_counted_impl.hpp (original)
+++ branches/hash/boost/detail/sp_counted_impl.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -35,7 +35,6 @@
 #include <memory> // std::allocator
 #endif
 
-#include <typeinfo> // std::type_info in get_deleter
 #include <cstddef> // std::size_t
 
 namespace boost
@@ -79,7 +78,7 @@
         boost::checked_delete( px_ );
     }
 
- virtual void * get_deleter( std::type_info const & )
+ virtual void * get_deleter( detail::sp_typeinfo const & )
     {
         return 0;
     }
@@ -145,9 +144,9 @@
         del( ptr );
     }
 
- virtual void * get_deleter( std::type_info const & ti )
+ virtual void * get_deleter( detail::sp_typeinfo const & ti )
     {
- return ti == typeid(D)? &reinterpret_cast<char&>( del ): 0;
+ return ti == BOOST_SP_TYPEID(D)? &reinterpret_cast<char&>( del ): 0;
     }
 
 #if defined(BOOST_SP_USE_STD_ALLOCATOR)
@@ -215,9 +214,9 @@
         a2.deallocate( this, 1 );
     }
 
- virtual void * get_deleter( std::type_info const & ti )
+ virtual void * get_deleter( detail::sp_typeinfo const & ti )
     {
- return ti == typeid( D )? &reinterpret_cast<char&>( d_ ): 0;
+ return ti == BOOST_SP_TYPEID( D )? &reinterpret_cast<char&>( d_ ): 0;
     }
 };
 

Modified: branches/hash/boost/interprocess/containers/detail/node_alloc_holder.hpp
==============================================================================
--- branches/hash/boost/interprocess/containers/detail/node_alloc_holder.hpp (original)
+++ branches/hash/boost/interprocess/containers/detail/node_alloc_holder.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -257,7 +257,7 @@
    {
       NodePtr p = this->allocate_one();
       Deallocator node_deallocator(p, *this);
- ::boost::interprocess::construct_in_place(detail::get_pointer(p), it);
+ construct_in_place(detail::get_pointer(p), it);
       node_deallocator.release();
       return (p);
    }

Modified: branches/hash/boost/interprocess/containers/detail/tree.hpp
==============================================================================
--- branches/hash/boost/interprocess/containers/detail/tree.hpp (original)
+++ branches/hash/boost/interprocess/containers/detail/tree.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -167,6 +167,17 @@
    #endif
 };
 
+}//namespace detail {
+
+template<class T, class VoidPointer>
+struct has_own_construct_from_it
+ < boost::interprocess::detail::rbtree_node<T, VoidPointer> >
+{
+ static const bool value = true;
+};
+
+namespace detail {
+
 template<class A, class ValueCompare>
 struct intrusive_rbtree_type
 {
@@ -189,15 +200,6 @@
 
 } //namespace detail {
 
-//This specialization is necessary since std::pair is not movable.
-//We need to hack the constructor to add move semantics
-//to rbtrees
-template<class T, class VoidPointer, class InpIt>
-inline void construct_in_place(detail::rbtree_node<T, VoidPointer>* dest, InpIt source)
-{
- detail::rbtree_node<T, VoidPointer>::construct(dest, *source);
-}
-
 namespace detail {
 
 template <class Key, class Value, class KeyOfValue,

Deleted: branches/hash/boost/interprocess/containers/detail/tree_func.hpp
==============================================================================
--- branches/hash/boost/interprocess/containers/detail/tree_func.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
+++ (empty file)
@@ -1,899 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Hewlett-Packard Company makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- *
- *
- * Copyright (c) 1996
- * Silicon Graphics Computer Systems, Inc.
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Silicon Graphics makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- *
- */
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztañaga 2005-2006. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/interprocess for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// This file comes from SGI's stl_tree file. Modified by Ion Gaztañaga 2005.
-// Renaming, isolating and porting to generic algorithms. Pointer typedef
-// set to allocator::pointer to allow placing it in shared memory.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef BOOST_INTERPROCESS_TREE_FUNC_HPP
-#define BOOST_INTERPROCESS_TREE_FUNC_HPP
-
-#include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/detail/workaround.hpp>
-
-#include <boost/iterator.hpp>
-
-namespace boost {
-namespace interprocess {
-namespace detail {
-
-template <class VoidPointer>
-struct rb_tree_node_base
-{
- typedef typename boost::interprocess::detail::pointer_to_other
- <VoidPointer, rb_tree_node_base<VoidPointer> >::type basic_node_pointer;
-
- enum color_t { red_color = false, black_color = true };
-
- const basic_node_pointer &parent() const { return mp_parent; }
- basic_node_pointer &parent() { return mp_parent; }
- const basic_node_pointer &left() const { return mp_left; }
- basic_node_pointer &left() { return mp_left; }
- const basic_node_pointer &right() const { return mp_right; }
- basic_node_pointer &right() { return mp_right; }
- const color_t &color() const { return m_color; }
- color_t &color() { return m_color; }
- private:
- basic_node_pointer mp_parent;
- basic_node_pointer mp_left;
- basic_node_pointer mp_right;
- color_t m_color;
-};
-
-/*!Basic red-black tree functions that don't need
- comparison operator*/
-template <class NodeBase>
-class rb_tree_algo
-{
- typedef typename NodeBase::basic_node_pointer basic_node_pointer;
- public:
- static basic_node_pointer next_node(basic_node_pointer node)
- {
- if (node->right()) {
- node = node->right();
- while (node->left()){
- node = node->left();
- }
- }
- else{
- basic_node_pointer y = node->parent();
- while (node == y->right()) {
- node = y;
- y = y->parent();
- }
- if (node->right() != y)
- node = y;
- }
- return node;
- }
-
- static basic_node_pointer previous_node(basic_node_pointer node)
- {
- if (node->color() == NodeBase::red_color &&
- node->parent()->parent() == node){
- node = node->right();
- }
- else if (node->left()) {
- basic_node_pointer y = node->left();
- while (y->right()){
- y = y->right();
- }
- node = y;
- }
- else{
- basic_node_pointer y = node->parent();
- while (node == y->left()) {
- node = y;
- y = y->parent();
- }
- node = y;
- }
- return node;
- }
-
- static bool is_header (const basic_node_pointer p)
- {
- return p->color() == NodeBase::red_color && p->parent()->parent() == p;
- }
-
- static basic_node_pointer minimum_node(basic_node_pointer x)
- {
- while (x->left()){
- x = x->left();
- }
- return x;
- }
-
- static basic_node_pointer maximum_node(basic_node_pointer x)
- {
- while (x->right()){
- x = x->right();
- }
- return x;
- }
-
- static void replace_own (const basic_node_pointer &header,
- const basic_node_pointer &own,
- const basic_node_pointer &p)
- {
- if (header->parent() == own)
- header->parent() = p;
- else if (own->parent()->left() == own)
- own->parent()->left() = p;
- else
- own->parent()->right() = p;
- }
-
- static void rotate_left(const basic_node_pointer &header, basic_node_pointer x)
- {
- basic_node_pointer y = x->right();
- x->right() = y->left();
- if (y->left() !=0)
- y->left()->parent() = x;
- y->parent() = x->parent();
- replace_own(header, x, y);
- y->left() = x;
- x->parent() = y;
- }
-
- static void rotate_right(const basic_node_pointer &header, basic_node_pointer x)
- {
- basic_node_pointer y = x->left();
- x->left() = y->right();
- if (y->right())
- y->right()->parent() = x;
- y->parent() = x->parent();
- replace_own(header, x, y);
- y->right() = x;
- x->parent() = y;
- }
-
- static void rebalance(const basic_node_pointer &header, basic_node_pointer x)
- {
- x->color() = NodeBase::red_color;
- while (x != header->parent() && x->parent()->color() == NodeBase::red_color) {
- if (x->parent() == x->parent()->parent()->left()) {
- basic_node_pointer y = x->parent()->parent()->right();
- if (y && y->color() == NodeBase::red_color) {
- x->parent()->color() = NodeBase::black_color;
- y->color() = NodeBase::black_color;
- x->parent()->parent()->color() = NodeBase::red_color;
- x = x->parent()->parent();
- }
- else{
- if (x == x->parent()->right()) {
- x = x->parent();
- rotate_left(header, x);
- }
- x->parent()->color() = NodeBase::black_color;
- x->parent()->parent()->color() = NodeBase::red_color;
- rotate_right(header, x->parent()->parent());
- }
- }
- else{
- basic_node_pointer y = x->parent()->parent()->left();
- if (y && y->color() == NodeBase::red_color) {
- x->parent()->color() = NodeBase::black_color;
- y->color() = NodeBase::black_color;
- x->parent()->parent()->color() = NodeBase::red_color;
- x = x->parent()->parent();
- }
- else{
- if (x == x->parent()->left()) {
- x = x->parent();
- rotate_right(header, x);
- }
- x->parent()->color() = NodeBase::black_color;
- x->parent()->parent()->color() = NodeBase::red_color;
- rotate_left(header, x->parent()->parent());
- }
- }
- }
- header->parent()->color() = NodeBase::black_color;
- }
-
- static basic_node_pointer erase_node
- (const basic_node_pointer &header, basic_node_pointer z)
- {
- basic_node_pointer& root = header->parent();
- basic_node_pointer& leftmost = header->left();
- basic_node_pointer& rightmost = header->right();
- basic_node_pointer y = z;
- basic_node_pointer x = 0;
- basic_node_pointer x_parent = 0;
- if (!y->left()) // z has at most one non-null child. y == z.
- x = y->right(); // x might be null.
- else
- if (!y->right()) // z has exactly one non-null child. y == z.
- x = y->left(); // x is not null.
- else{ // z has two non-null children. Set y to
- y = y->right(); // z's successor. x might be null.
- while (y->left())
- y = y->left();
- x = y->right();
- }
- if (y != z) { // relink y in place of z. y is z's successor
- z->left()->parent() = y;
- y->left() = z->left();
- if (y != z->right()) {
- x_parent = y->parent();
- if (x)
- x->parent() = y->parent();
- y->parent()->left() = x; // y must be a child of mp_left
- y->right() = z->right();
- z->right()->parent() = y;
- }
- else
- x_parent = y;
-
- replace_own(header, z, y);
- y->parent() = z->parent();
- std::swap(y->color(), z->color());
- y = z;
- // y now points to node to be actually deleted
- }
- else{ // y == z
- x_parent = y->parent();
- if (x)
- x->parent() = y->parent();
-
- replace_own(header, z, x);
-
- if (leftmost == z)
- if (!z->right()) // z->left must be null also
- leftmost = z->parent();
- // makes leftmost == this->m_header if z == root
- else
- leftmost = minimum_node(x);
- if (rightmost == z)
- if (!z->left()) // z->right must be null also
- rightmost = z->parent();
- // makes rightmost == this->m_header if z == root
- else // x == z->left
- rightmost = maximum_node(x);
- }
- if (y->color() != NodeBase::red_color) {
- while (x != root && (!x || x->color() == NodeBase::black_color))
- if (x == x_parent->left()) {
- basic_node_pointer w = x_parent->right();
- if (w->color() == NodeBase::red_color) {
- w->color() = NodeBase::black_color;
- x_parent->color() = NodeBase::red_color;
- rotate_left(header, x_parent);
- w = x_parent->right();
- }
- if ((!w->left() ||
- w->left()->color() == NodeBase::black_color) &&
- (!w->right() ||
- w->right()->color() == NodeBase::black_color)) {
- w->color() = NodeBase::red_color;
- x = x_parent;
- x_parent = x_parent->parent();
- }
- else{
- if (!w->right() ||
- w->right()->color() == NodeBase::black_color) {
- if (w->left())
- w->left()->color() = NodeBase::black_color;
- w->color() = NodeBase::red_color;
- rotate_right(header, w);
- w = x_parent->right();
- }
- w->color() = x_parent->color();
- x_parent->color() = NodeBase::black_color;
- if (w->right())
- w->right()->color() = NodeBase::black_color;
- rotate_left(header, x_parent);
- break;
- }
- }
- else{
- // same as above, with mp_right <-> mp_left.
- basic_node_pointer w = x_parent->left();
- if (w->color() == NodeBase::red_color) {
- w->color() = NodeBase::black_color;
- x_parent->color() = NodeBase::red_color;
- rotate_right(header, x_parent);
- w = x_parent->left();
- }
- if ((!w->right() ||
- w->right()->color() == NodeBase::black_color) &&
- (!w->left() ||
- w->left()->color() == NodeBase::black_color)) {
- w->color() = NodeBase::red_color;
- x = x_parent;
- x_parent = x_parent->parent();
- }
- else{
- if (!w->left() ||
- w->left()->color() == NodeBase::black_color) {
- if (w->right())
- w->right()->color() = NodeBase::black_color;
- w->color() = NodeBase::red_color;
- rotate_left(header, w);
- w = x_parent->left();
- }
- w->color() = x_parent->color();
- x_parent->color() = NodeBase::black_color;
- if (w->left())
- w->left()->color() = NodeBase::black_color;
- rotate_right(header, x_parent);
- break;
- }
- }
- if (x)
- x->color() = NodeBase::black_color;
- }
- return y;
- }
-
- static basic_node_pointer link_and_rebalance
- (basic_node_pointer header, bool link_left, basic_node_pointer y, basic_node_pointer z)
- {
-
- z->parent() = y;
- z->left() = 0;
- z->right() = 0;
-
- //when y == _header
- if (y == header) {
- header->left() = z;
- header->parent() = z;
- header->right() = z;
- }
- else if (link_left) {
- y->left() = z;
- if (y == header->left()){
- header->left() = z; // maintain header->right() pointing to max node
- }
- }
- else{
- y->right() = z;
- if (y == header->right()){
- header->right() = z; // maintain header->right() pointing to max node
- }
- }
- rebalance(header, z);
- return z;
-/*
- if (link_left) {
- y->left() = z; // also makes header->left() = z
- // when y == _header
- if (y == header) {
- header->parent() = z;
- header->right() = z;
- }
- else if (y == header->left())
- header->left() = z; // maintain header->left() pointing to min node
- }
- else{
- y->right() = z;
- if (y == header->right())
- header->right() = z; // maintain header->right() pointing to max node
- }
- z->parent() = y;
- z->left() = 0;
- z->right() = 0;
- rebalance(header, z);
- return z;*/
- }
-
- static void clear(basic_node_pointer header)
- {
- header->left() = header;
- header->right() = header;
- header->parent() = 0;
- }
-
- static bool empty(const basic_node_pointer &header) { return !header->parent(); }
-};
-
-/*!Basic red-black tree functions that only need
- the comparison functor and functors to obtain the
- key from a value*/
-
-template <class Node, class Key, class KeyOfValue,
- class KeyCompare>
-class rb_tree_func : public rb_tree_algo<Node>
-{
- typedef rb_tree_algo<rb_tree_node_base<typename pointer_to_other
- <typename Node::basic_node_pointer, void>::type> > rb_tree_algo_t;
-
-// typedef rb_tree_algo<Node> rb_tree_algo_t;
- typedef typename Node::node_pointer node_pointer;
- typedef typename Node::basic_node_pointer basic_node_pointer;
-
- static bool node_compare (const KeyCompare &key_compare,
- const node_pointer &node,
- const node_pointer &other_node)
- {
- return key_compare(KeyOfValue()(node->value()),
- KeyOfValue()(other_node->value()));
- }
-
- public:
-
- struct insert_unique_context
- {
- bool link_left;
- basic_node_pointer node;
- };
-
- static node_pointer find(const node_pointer &header,
- const KeyCompare &key_compare,
- const Key& k)
- {
- basic_node_pointer y = header; // Last node which is not less than k.
- basic_node_pointer x = header->parent(); // Current node.
- while (x) {
- if (!(key_compare(KeyOfValue()(Node::downcast(x)->value()), k))){
- y = x, x = x->left();
- }
- else{
- x = x->right();
- }
- }
-
- if(y == header || key_compare(k, KeyOfValue()(Node::downcast(y)->value()))){
- y = header;
- }
- return Node::downcast(y);
- }
-
- static node_pointer upper_bound(const node_pointer &header,
- const KeyCompare &key_compare,
- const Key& k)
- {
- basic_node_pointer y = header; //Last node which is greater than k.
- basic_node_pointer x = header->parent(); //Current node.
-
- while (x){
- if (key_compare(k, KeyOfValue()(Node::downcast(x)->value()))){
- y = x, x = x->left();
- }
- else{
- x = x->right();
- }
- }
- return Node::downcast(y);
- }
-
- static node_pointer lower_bound(const node_pointer &header,
- const KeyCompare &key_compare,
- const Key& k)
- {
- basic_node_pointer y = header; // Last node which is not less than k.
- basic_node_pointer x = header->parent(); // Current node.
-
- while (x){
- if (!key_compare(KeyOfValue()(Node::downcast(x)->value()), k)){
- y = x, x = x->left();
- }
- else{
- x = x->right();
- }
- }
- return Node::downcast(y);
- }
-
- static bool insert_unique (const node_pointer &header,
- const KeyCompare &key_compare,
- node_pointer &new_node,
- node_pointer &out)
- {
- insert_unique_context context;
- if(!insert_unique_prepare(header, key_compare, KeyOfValue()(new_node->value()), out, context)){
- return false;
- }
- insert_unique_commit(header, key_compare, new_node, out, context);
- return true;
- }
-
- static bool insert_unique_hint(const node_pointer &header,
- const KeyCompare &key_compare,
- const node_pointer &hint,
- node_pointer &new_node,
- node_pointer &out)
- {
- insert_unique_context context;
- if(!insert_unique_hint_prepare
- (header, hint, key_compare, KeyOfValue()(new_node->value()), out, context)){
- return false;
- }
- insert_unique_commit(header, key_compare, new_node, out, context);
- return true;
- }
-
- static bool insert_unique_prepare (const node_pointer & header,
- const KeyCompare &key_compare,
- const Key &key,
- insert_unique_context &context)
- {
- basic_node_pointer x(header->parent());
- basic_node_pointer y(header);
- basic_node_pointer prev(0);
-
- //Find the upper bound, and cache the previous value and if we should
- //store it in the left or right node
- bool left_child = true;
- while (x) {
- y = x;
- x = (left_child = key_compare(key, KeyOfValue()(Node::downcast(x)->value())))
- ? (x->left())
- : (prev = y, x->right());
- }
-
- //Since we've found the upper bound there is no other value with the same key if:
- // - There is no previous node
- // - The previous node is less than the key
- if(!prev || key_compare(KeyOfValue()(Node::downcast(prev)->value()), key)){
- context.link_left = left_child;
- context.node = y;
- return true;
- }
- //If the previous value was not less than key, it means that it's equal
- //(because we've checked the upper bound)
- else{
- context.node = prev;
- return false;
- }
- }
-
- static bool insert_unique_hint_prepare(const node_pointer &header,
- const KeyCompare &key_compare,
- const node_pointer &hint,
- const Key &key,
- insert_unique_context &context)
- {
- //hint must be bigger than the key
- if (hint == header || key_compare(key, KeyOfValue()(hint->value()))){
- node_pointer prev = hint;
- //The previous value should be less than the key
- if (prev == header->left() ||
- key_compare(KeyOfValue()((prev = Node::downcast(previous_node(hint)))->value()), key)){
- context.link_left = empty(header) || !hint->left();
- context.node = context.link_left ? hint : prev;
- return true;
- }
- //The value is already present
- else{
- context.link_left = false;
- context.node = prev;
- return false;
- }
- }
- //The hint was wrong, use hintless insert
- else{
- return insert_unique_prepare(header, key_compare, key, context);
- }
- }
-
- static void insert_unique_commit (const node_pointer &header,
- const KeyCompare &key_compare,
- node_pointer &new_node,
- insert_unique_context &context)
- {
- rb_tree_algo_t::link_and_rebalance
- (header, context.link_left, context.node, new_node);
- }
-
- static void insert_equal (const node_pointer & header,
- const KeyCompare &key,
- node_pointer &new_node)
- {
- insert_equal_upper(header, key, new_node);
- }
-
- static void insert_equal_lower (const node_pointer & header,
- const KeyCompare &key,
- node_pointer &new_node)
- {
- basic_node_pointer y = header;
- basic_node_pointer x = header->parent();
-
- while (x) {
- y = x;
- x = !node_compare(key, Node::downcast(x), new_node)
- ? x->left() : x->right();
- }
-
- bool link_left = (y == header) || !node_compare(key, Node::downcast(y), new_node);
- rb_tree_algo_t::link_and_rebalance(header, link_left, y, new_node);
- }
-
- static void insert_equal_upper (const node_pointer & header,
- const KeyCompare &key,
- node_pointer &new_node)
- {
- basic_node_pointer y = header;
- basic_node_pointer x = header->parent();
-
- while (x) {
- y = x;
- x = node_compare(key, new_node, Node::downcast(x))
- ? x->left() : x->right();
- }
-
- bool link_left = (y == header) || node_compare(key, new_node, Node::downcast(y));
- rb_tree_algo_t::link_and_rebalance(header, link_left, y, new_node);
- }
-
- static void insert_equal_hint (const node_pointer & header,
- const KeyCompare &key_compare,
- const node_pointer &hint,
- node_pointer &new_node)
- {
- if(hint == header || !node_compare(key_compare, hint, new_node)){
- node_pointer prev;
- if(hint == header->left() ||
- !node_compare(key_compare, new_node,
- (prev = Node::downcast(previous_node(hint))))){
- bool link_left = empty(header) || !hint->left();
- rb_tree_algo_t::link_and_rebalance
- (header, link_left, link_left ? hint : prev, new_node);
- }
- else{
- insert_equal_upper(header, key_compare, new_node);
- }
- }
- else{
- insert_equal_lower(header, key_compare, new_node);
- }
- }
-
- static std::size_t erase_with_key(const node_pointer &header,
- const KeyCompare &key_compare,
- const Key& k)
- {
- node_pointer lower, upper, tmp;
- rb_tree_algo_t::equal_range(header, k, lower, upper);
- std::size_t count = 0;
-
- while(lower != upper){
- tmp = lower;
- lower = rb_tree_algo_t::next_node(lower);
- rb_tree_algo_t::erase(header, tmp);
- ++count;
- }
- return count;
- }
-
- static void equal_range(const node_pointer &header,
- const KeyCompare &key_compare,
- const Key& k,
- node_pointer &lower,
- node_pointer &upper)
- {
-// lower = lower_bound(header, key_compare, k);
-// upper = upper_bound(header, key_compare, k);
- basic_node_pointer y = header; // Last node which is not less than k.
- basic_node_pointer x = header->parent(); // Current node.
-
- while (x){
- //Execute common logic
- if (key_compare(KeyOfValue()(Node::downcast(x)->value()), k)){
- x = x->right();
- }
- else if (key_compare(k, KeyOfValue()(Node::downcast(x)->value()))){
- y = x, x = x->left();
- }
- //Now lower and upper bounds needs to follow different subtrees
- else{
- basic_node_pointer xu(x), yu(y);
- y = x, x = x->left();
- xu = xu->right();
-
- while (x){
- if (key_compare(KeyOfValue()(Node::downcast(x)->value()), k)){
- x = x->right();
- }
- else{
- y = x, x = x->left();
- }
- }
- while (xu){
- if (key_compare(k, KeyOfValue()(Node::downcast(xu)->value()))){
- yu = xu, xu = xu->left();
- }
- else{
- xu = xu->right();
- }
- }
- lower = Node::downcast(y);
- upper = Node::downcast(yu);
- return;
- }
- }
- lower = upper = Node::downcast(y);
- }
-
- static std::size_t count(const node_pointer &header,
- const KeyCompare &key_compare,
- const Key& k)
- {
- node_pointer lower, upper;
- equal_range(header, key_compare, k, lower, upper);
- std::size_t count = 0;
- while(lower != upper){
- lower = Node::downcast(rb_tree_algo_t::next_node(lower));
- ++count;
- }
- return count;
- }
-
-};
-
-template <class Node>
-class rb_tree_const_iterator
- : public boost::iterator<std::bidirectional_iterator_tag,
- typename Node::value_type,
- typename Node::difference_type,
- typename Node::const_pointer,
- typename Node::const_reference>
-{
- private:
- typedef boost::iterator<std::bidirectional_iterator_tag,
- typename Node::value_type,
- typename Node::difference_type,
- typename Node::const_pointer,
- typename Node::const_reference> base_t;
-
- protected:
- typedef typename Node::node_pointer node_pointer;
- typedef typename Node::basic_node_pointer basic_node_pointer;
- typedef rb_tree_algo<Node> rb_tree_algo_t;
- node_pointer mp_node;
-
- public:
- typedef typename base_t::pointer pointer;
- typedef typename base_t::reference reference;
- typedef typename base_t::difference_type difference_type;
- typedef typename base_t::iterator_category iterator_category;
- typedef typename base_t::value_type value_type;
-
- rb_tree_const_iterator()
- {}
-/*
- explicit rb_tree_const_iterator(const node_pointer &x)
- : mp_node(x)
- {}
-
-*/
- explicit rb_tree_const_iterator(const basic_node_pointer &x)
- : mp_node(Node::downcast(x))
- {}
-
- rb_tree_const_iterator(const rb_tree_const_iterator & it)
- : mp_node(it.get_ptr())
- {}
-
- reference operator*() const
- { return mp_node->value(); }
-
- pointer operator->() const
- { return pointer(&mp_node->value()); }
-
- rb_tree_const_iterator& operator++()
- {
- mp_node = Node::downcast(rb_tree_algo_t::next_node(mp_node));
- return *this;
- }
-
- rb_tree_const_iterator operator++(int)
- {
- rb_tree_const_iterator tmp = *this;
- mp_node = rb_tree_algo_t::next_node(mp_node);
- return tmp;
- }
-
- rb_tree_const_iterator& operator--()
- {
- mp_node = rb_tree_algo_t::previous_node(mp_node);
- return *this;
- }
-
- rb_tree_const_iterator operator--(int)
- {
- rb_tree_const_iterator tmp = *this;
- mp_node = rb_tree_algo_t::previous_node(mp_node);
- return tmp;
- }
-
- friend bool operator==(const rb_tree_const_iterator& x, const rb_tree_const_iterator& y)
- { return x.get_ptr() == y.get_ptr(); }
-
- friend bool operator!=(const rb_tree_const_iterator& x, const rb_tree_const_iterator& y)
- { return x.get_ptr() != y.get_ptr(); }
-
- node_pointer &get_ptr()
- { return mp_node; }
-
- const node_pointer &get_ptr() const
- { return mp_node; }
-};
-
-//list rb_tree_iterator
-template <class Node>
-class rb_tree_iterator : public rb_tree_const_iterator<Node>
-{
- private:
- typedef rb_tree_const_iterator<Node> base_t;
- typedef typename base_t::node_pointer node_pointer;
- typedef typename base_t::basic_node_pointer basic_node_pointer;
- public:
- typedef typename Node::pointer pointer;
- typedef typename Node::reference reference;
-
- //Constructors
- rb_tree_iterator()
- {}
-/*
- explicit rb_tree_iterator(const node_pointer &ptr)
- : base_t(ptr)
- {}
-*/
- explicit rb_tree_iterator(const basic_node_pointer &ptr)
- : base_t(ptr)
- {}
-
- //Pointer like operators
- reference operator*() const { return this->mp_node->value(); }
- pointer operator->() const { return pointer(&this->mp_node->value()); }
-
- //Increment / Decrement
- rb_tree_iterator& operator++()
- { base_t::operator++(); return *this; }
-
- rb_tree_iterator operator++(int)
- { node_pointer tmp = this->mp_node; ++*this; return rb_tree_iterator(tmp); }
-
- rb_tree_iterator& operator--()
- { base_t::operator--(); return *this; }
-
- rb_tree_iterator operator--(int)
- { rb_tree_iterator tmp = *this; --*this; return tmp; }
-};
-
-} //namespace detail {
-} //namespace interprocess {
-} //namespace boost {
-
-#include <boost/interprocess/detail/config_end.hpp>
-
-#endif //BOOST_INTERPROCESS_TREE_FUNC_HPP
-

Deleted: branches/hash/boost/interprocess/containers/tree.hpp
==============================================================================
--- branches/hash/boost/interprocess/containers/tree.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
+++ (empty file)
@@ -1,839 +0,0 @@
-/*
- *
- * Copyright (c) 1994
- * Hewlett-Packard Company
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Hewlett-Packard Company makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- *
- *
- * Copyright (c) 1996
- * Silicon Graphics Computer Systems, Inc.
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation. Silicon Graphics makes no
- * representations about the suitability of this software for any
- * purpose. It is provided "as is" without express or implied warranty.
- *
- */
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztañaga 2005-2006. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/interprocess for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-//
-// This file comes from SGI's stl_tree file. Modified by Ion Gaztañaga 2005.
-// Renaming, isolating and porting to generic algorithms. Pointer typedef
-// set to allocator::pointer to allow placing it in shared memory.
-//
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef BOOST_INTERPROCESS_TREE_HPP
-#define BOOST_INTERPROCESS_TREE_HPP
-
-#include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/detail/workaround.hpp>
-
-#include <boost/interprocess/detail/move.hpp>
-#include <boost/interprocess/detail/utilities.hpp>
-#include <boost/interprocess/containers/detail/tree_func.hpp>
-#include <boost/interprocess/smart_ptr/scoped_ptr.hpp>
-#include <boost/detail/allocator_utilities.hpp>
-#include <boost/interprocess/detail/generic_cast.hpp>
-#include <boost/iterator/reverse_iterator.hpp>
-#include <boost/type_traits/has_trivial_constructor.hpp>
-#include <boost/type_traits/has_trivial_destructor.hpp>
-#include <boost/detail/no_exceptions_support.hpp>
-#include <boost/mpl/if.hpp>
-
-#include <iterator>
-#include <algorithm>
-
-//Red-black tree class, designed for use in implementing STL
-//associative containers (set, multiset, map, and multimap). The
-//insertion and deletion algorithms are based on those in Cormen,
-//Leiserson, and Rivest, Introduction to Algorithms (MIT Press, 1990),
-//except that
-//
-//(1) the header cell is maintained with links not only to the root
-//but also to the leftmost node of the tree, to enable constant time
-//this->begin(), and to the rightmost node of the tree, to enable linear time
-//performance when used with the generic set algorithms (set_union,
-//etc.);
-//
-//(2) when a node being deleted has two children its successor node is
-//relinked into its place, rather than copied, so that the only
-//iterators invalidated are those referring to the deleted node.
-
-namespace boost { namespace interprocess { namespace detail {
-
-template <class Alloc>
-struct rb_tree_node
- : rb_tree_node_base<typename pointer_to_other<typename Alloc::pointer, void>::type>
-{
- typedef rb_tree_node_base<typename pointer_to_other
- <typename Alloc::pointer, void>::type> base_t;
- typedef typename boost::detail::allocator::
- rebind_to<Alloc, rb_tree_node<Alloc> >::type node_allocator_t;
-
- typedef typename base_t::basic_node_pointer basic_node_pointer;
- typedef typename node_allocator_t::pointer node_pointer;
- typedef typename Alloc::value_type value_type;
- typedef typename Alloc::const_pointer const_pointer;
- typedef typename Alloc::pointer pointer;
- typedef typename Alloc::const_reference const_reference;
- typedef typename Alloc::reference reference;
- typedef typename Alloc::difference_type difference_type;
-
- rb_tree_node(const value_type & value)
- : m_value(value)
- {}
-
- rb_tree_node(const detail::moved_object<value_type> & value)
- : m_value(move(value.get()))
- {}
-
- static node_pointer downcast(basic_node_pointer upclass_pointer/*const basic_node_pointer &upclass_pointer*/)
- {
- return boost::interprocess::cast_to<node_pointer>::using_static_cast(upclass_pointer);
-// return boost::interprocess::do_static_cast<node_pointer>(upclass_pointer);
- }
-
- const value_type &value() const { return m_value; }
- value_type &value() { return m_value; }
- private:
- value_type m_value;
-};
-
-template <class T, class Alloc>
-class rb_tree_alloc_base/*<T, Alloc, true>*/
- //Inherit from node allocator
- : public boost::detail::allocator::
- rebind_to<Alloc, rb_tree_node<Alloc> >::type
-{
- public:
- typedef typename boost::detail::allocator::
- rebind_to<Alloc, rb_tree_node<Alloc> >::type node_allocator_t;
- typedef typename node_allocator_t::value_type node_val_t;
- typedef typename node_allocator_t::pointer node_pointer;
-
- typedef typename boost::detail::allocator::
- rebind_to<Alloc, T>::type value_allocator_t;
- typedef typename value_allocator_t::value_type value_val_t;
- typedef typename value_allocator_t::pointer value_ptr_t;
- typedef typename value_allocator_t::const_pointer value_cptr_t;
- typedef typename value_allocator_t::reference value_ref_t;
- typedef typename value_allocator_t::const_reference value_cref_t;
-
- typedef typename boost::detail::allocator::
- rebind_to<Alloc, typename node_val_t::
- basic_node_pointer>::type basic_node_ptr_allocator_t;
- typedef typename basic_node_ptr_allocator_t::pointer basic_node_ptr_ptr_t;
- typedef typename basic_node_ptr_allocator_t::value_type basic_node_ptr_t;
-
- typedef typename node_val_t::base_t base_node_t;
-
- typedef detail::scoped_deallocator<node_allocator_t> NodeDeallocator;
- typedef detail::scoped_destructor <basic_node_ptr_allocator_t> BasicPtrDestructor;
-
- rb_tree_alloc_base(const value_allocator_t& a)
- : node_allocator_t(a)
- { this->initialize_when_empty(); }
-
- rb_tree_alloc_base(const rb_tree_alloc_base &x)
- : node_allocator_t(x)
- { this->initialize_when_empty(); }
-
- rb_tree_alloc_base(const detail::moved_object<rb_tree_alloc_base> &x)
- : node_allocator_t(move((node_allocator_t&)x.get()))
- { this->initialize_when_empty(); this->swap(x.get()); }
-
- ~rb_tree_alloc_base()
- { this->uninitialize_when_empty(); }
-
- template<class Convertible>
- static void construct(const node_pointer &ptr, const Convertible &value)
- { new(detail::get_pointer(ptr)) node_val_t(value); }
-
- template<class Convertible1, class Convertible2>
- static void construct(const node_pointer &ptr,
- const detail::moved_object<std::pair<Convertible1, Convertible2> > &value)
- {
- //std::pair is not movable so we define our own type and overwrite it
- typedef detail::pair<typename node_val_t::value_type::first_type
- ,typename node_val_t::value_type::second_type> hack_pair_t;
-
- typedef typename boost::detail::allocator::
- rebind_to<Alloc, hack_pair_t>::type hack_pair_allocator_t;
-
- typedef rb_tree_node<hack_pair_allocator_t> hack_node_t;
-
- new((void*)detail::get_pointer(ptr)) hack_node_t(value);
- }
-
- static void destroy(const node_pointer &ptr)
- { detail::get_pointer(ptr)->~node_val_t(); }
-
- template<class Convertible>
- node_pointer allocate_and_construct_node(const Convertible &x)
- {
- node_pointer p = node_allocator_t::allocate(1);
- scoped_ptr<node_val_t, NodeDeallocator>node_deallocator(p, *this);
-// node_allocator_t::construct(p, x);
- construct(p, x);
- node_deallocator.release();
- return p;
- }
-
- void destroy_and_deallocate_node(node_pointer p)
- {
- node_allocator_t::destroy(p);
- node_allocator_t::deallocate(p, 1);
- }
-
- typename node_allocator_t::size_type max_size() const
- { return node_allocator_t::max_size(); }
-
- void swap (rb_tree_alloc_base &x)
- {
- node_allocator_t& this_alloc = static_cast<node_allocator_t&>(*this);
- node_allocator_t& other_alloc = static_cast<node_allocator_t&>(x);
- if (this_alloc != other_alloc){
- detail::do_swap(this_alloc, other_alloc);
- }
-
- std::swap(this->m_end, x.m_end);
-
- if (this->m_end.parent())
- this->m_end.parent()->parent() = this->end_node();
- else
- this->m_end.left() = this->m_end.right() = this->end_node();
-
- if (x.m_end.parent())
- x.m_end.parent()->parent() = x.end_node();
- else
- x.m_end.left() = x.m_end.right() = x.end_node();
- /*
- node_allocator_t& this_alloc = static_cast<node_allocator_t&>(*this);
- node_allocator_t& other_alloc = static_cast<node_allocator_t&>(x);
- if (this_alloc != other_alloc){
- detail::do_swap(this_alloc, other_alloc);
- }
- detail::do_swap(this->m_header, x.m_header);
-*/
- }
-
- private:
- void initialize_when_empty()
- {
-/*
- this->m_header = node_allocator_t::allocate(1);
-
- //If the pointer type a has trivial constructor we can avoid this
- if(!boost::has_trivial_constructor<node_pointer>::value){
- basic_node_ptr_allocator_t node_ptr_allocator(*this);
- scoped_ptr<node_val_t, NodeDeallocator>node_deallocator(this->m_header, *this);
- basic_node_ptr_ptr_t pleft(node_ptr_allocator.address(this->m_header->left())),
- pright(node_ptr_allocator.address(this->m_header->right())),
- pparent(node_ptr_allocator.address(this->m_header->parent()));
-
- //Make sure destructors are called before memory is freed
- //if an exception is thrown
- {
- node_ptr_allocator.construct(pleft, basic_node_ptr_t());
- scoped_ptr<basic_node_ptr_t, BasicPtrDestructor>
- left_destroy(pleft, node_ptr_allocator);
-
- node_ptr_allocator.construct(pright, basic_node_ptr_t());
- scoped_ptr<basic_node_ptr_t, BasicPtrDestructor>
- right_destroy(pright, node_ptr_allocator);
-
- node_ptr_allocator.construct(pparent, basic_node_ptr_t());
-
- left_destroy.release();
- right_destroy.release();
- }
- node_deallocator.release();
- }
-*/
- //m_value is not constructed since it is not used
- //m_color is POD so we don't need to construct it.
- //used to distinguish header from root, in iterator.operator++
- this->m_end.color() = node_val_t::red_color;
- this->m_end.parent() = 0;
- this->m_end.left() = this->end_node();
- this->m_end.right() = this->end_node();
-
-/*
- //m_value is not constructed since it is not used
- //m_color is POD so we don't need to construct it
- this->m_header->color() = node_val_t::red_color; // used to distinguish header from
- // root, in iterator.operator++
- this->m_header->parent() = 0;
- this->m_header->left() = this->m_header;
- this->m_header->right() = this->m_header;
-*/
- }
-
- void uninitialize_when_empty()
- {/*
- if(this->m_header){
- //If the pointer type a has trivial destructor we can avoid this
- if(!boost::has_trivial_destructor<node_pointer>::value){
- basic_node_ptr_allocator_t node_ptr_allocator(*this);
- //Destructors must not throw
- node_ptr_allocator.destroy(node_ptr_allocator.address(this->m_header->left()));
- node_ptr_allocator.destroy(node_ptr_allocator.address(this->m_header->right()));
- node_ptr_allocator.destroy(node_ptr_allocator.address(this->m_header->parent()));
- }
- //m_color is POD so we don't need to destroy it
- //m_value was not constructed so we don't need to destroy it
- node_allocator_t::deallocate(this->m_header, 1);
- }*/
- }
-
- protected:
-
- basic_node_ptr_t end_node() const
- { return basic_node_ptr_t(const_cast<base_node_t *>(&m_end)); }
-
- base_node_t m_end;
-// node_pointer m_header;
-
-};
-
-template <class Key, class Value, class KeyOfValue,
- class Compare, class Alloc>
-class rb_tree
- : protected rb_tree_alloc_base<Value, Alloc/*,
- has_convertible_construct<Alloc>::value*/>
-{
- private:
- typedef rb_tree_alloc_base<Value, Alloc/*,
- has_convertible_construct<Alloc>::value*/> base_t;
- typedef typename base_t::node_pointer node_pointer;
- typedef typename base_t::node_val_t node_val_t;
- typedef typename node_val_t::basic_node_pointer basic_node_pointer;
- typedef rb_tree_algo<node_val_t> rb_tree_algo_t;
- typedef rb_tree_func<node_val_t, Key,
- KeyOfValue, Compare > rb_tree_func_t;
-
- public:
- typedef Key key_type;
- typedef Value value_type;
- typedef typename base_t::value_ptr_t pointer;
- typedef typename base_t::value_cptr_t const_pointer;
- typedef typename base_t::value_ref_t reference;
- typedef typename base_t::value_cref_t const_reference;
- typedef typename base_t::value_allocator_t allocator_type;
- typedef typename allocator_type::size_type size_type;
- typedef typename allocator_type::difference_type difference_type;
- typedef rb_tree_const_iterator<node_val_t> const_iterator;
- typedef rb_tree_iterator<node_val_t> iterator;
- typedef boost::reverse_iterator<iterator> reverse_iterator;
- typedef boost::reverse_iterator<const_iterator> const_reverse_iterator;
-
- rb_tree(const Compare& comp = Compare(),
- const allocator_type& a = allocator_type())
- : base_t(a), m_data(comp, 0)
- { }
-
- rb_tree(const rb_tree& x)
- : base_t(x),
- m_data(x.get_compare(), 0)
- {
- if (x.root()){
- this->m_end.color() = node_val_t::red_color;
- this->root()=
- this->copy_node(node_val_t::downcast(this->m_end.parent()),
- this->end_node());
- this->leftmost() =
- rb_tree_algo_t::minimum_node(node_val_t::downcast(this->root()));
- this->rightmost() =
- rb_tree_algo_t::maximum_node(node_val_t::downcast(this->root()));
- }
-
- this->m_data.m_node_count = x.m_data.m_node_count;
- }
-
- rb_tree(const detail::moved_object<rb_tree>& x)
- : base_t(move((base_t&)x.get())),
- m_data(move(x.get().get_compare()), 0)
- {
- x.get().m_data.m_node_count = 0;
- }
-
- ~rb_tree() { this->clear(); }
-
- rb_tree& operator=(const rb_tree& x)
- {
- if (this != &x) {
- // Note that Key may be a constant type.
- this->clear();
- this->m_data.m_node_count = 0;
- this->get_compare() = x.get_compare();
- if (!x.root()) {
- this->root() = 0;
- this->leftmost() = this->end_node();
- this->rightmost() = this->end_node();
- }
- else{
- this->root() = this->copy_node(x.root(), this->end_node());
- this->leftmost() =
- rb_tree_algo_t::minimum_node(node_val_t::downcast(this->root()));
- this->rightmost() =
- rb_tree_algo_t::maximum_node(node_val_t::downcast(this->root()));
- this->m_data.m_node_count = x.m_data.m_node_count;
- }
- }
- return *this;
- }
-
- public:
- // accessors:
- Compare key_comp() const
- { return this->get_compare(); }
-
- allocator_type get_allocator() const
- { return allocator_type(*this); }
-
- iterator begin()
- { basic_node_pointer a;
- iterator b(a);
-
- return iterator(this->leftmost()); }
-
- const_iterator begin() const
- { return const_iterator(this->leftmost()); }
-
- iterator end()
- { return iterator(this->end_node()); }
-
- const_iterator end() const
- { return const_iterator(this->end_node()); }
-
- reverse_iterator rbegin()
- { return reverse_iterator(this->end()); }
-
- const_reverse_iterator rbegin() const
- { return const_reverse_iterator(this->end()); }
-
- reverse_iterator rend()
- { return reverse_iterator(this->begin()); }
-
- const_reverse_iterator rend() const
- { return const_reverse_iterator(this->begin()); }
-
- bool empty() const
- { return !this->m_data.m_node_count; }
-
- size_type size() const
- { return this->m_data.m_node_count; }
-
- size_type max_size() const
- { return base_t::max_size(); }
-
- void swap(rb_tree& t)
- {
- detail::do_swap(this->m_data.m_node_count, t.m_data.m_node_count);
- detail::do_swap(this->get_compare(), t.get_compare());
- base_t::swap(t);
- }
-
- void swap(const detail::moved_object<rb_tree>& mt)
- { this->swap(mt.get()); }
-
- public:
- // insert/erase
- std::pair<iterator,bool> insert_unique(const value_type& v)
- {
- KeyOfValue key_of_value;
- typename rb_tree_func_t::insert_unique_context context;
- if(!rb_tree_func_t::insert_unique_prepare
- (node_val_t::downcast(this->end_node()), this->m_data, key_of_value(v), context)){
- return std::pair<iterator,bool>(iterator(context.node), false);
- }
- node_pointer new_node = this->allocate_and_construct_node(v);
- ++this->m_data.m_node_count;
- rb_tree_func_t::insert_unique_commit
- (node_val_t::downcast(this->end_node()), this->m_data, new_node, context);
- return std::pair<iterator,bool>(iterator(new_node), true);
- }
-
- template<class MovableConvertible>
- std::pair<iterator,bool> insert_unique(const detail::moved_object<MovableConvertible>& mv)
- {
- MovableConvertible &v = mv.get();
- KeyOfValue key_of_value;
- typename rb_tree_func_t::insert_unique_context context;
- if(!rb_tree_func_t::insert_unique_prepare
- (node_val_t::downcast(this->end_node()), this->m_data, key_of_value(v), context)){
- return std::pair<iterator,bool>(iterator(context.node), false);
- }
- node_pointer new_node = this->allocate_and_construct_node(mv);
- ++this->m_data.m_node_count;
- rb_tree_func_t::insert_unique_commit
- (node_val_t::downcast(this->end_node()), this->m_data, new_node, context);
- return std::pair<iterator,bool>(iterator(new_node), true);
- }
-
- iterator insert_unique(iterator hint, const value_type& v)
- {
- KeyOfValue key_of_value;
- typename rb_tree_func_t::insert_unique_context context;
- if(!rb_tree_func_t::insert_unique_hint_prepare
- (node_val_t::downcast(this->end_node()), this->m_data, hint.get_ptr(),
- key_of_value(v), context)){
- return iterator(context.node);
- }
- node_pointer new_node = this->allocate_and_construct_node(v);
- ++this->m_data.m_node_count;
- rb_tree_func_t::insert_unique_commit(node_val_t::downcast(this->end_node()), this->m_data, new_node, context);
- return iterator(new_node);
- }
-
- template<class MovableConvertible>
- iterator insert_unique(iterator hint, const detail::moved_object<MovableConvertible> &mv)
- {
- MovableConvertible &v = mv.get();
- KeyOfValue key_of_value;
- typename rb_tree_func_t::insert_unique_context context;
- if(!rb_tree_func_t::insert_unique_hint_prepare
- (node_val_t::downcast(this->end_node()), this->m_data, hint.get_ptr(),
- key_of_value(v), context)){
- return iterator(context.node);
- }
- node_pointer new_node = this->allocate_and_construct_node(mv);
- ++this->m_data.m_node_count;
- rb_tree_func_t::insert_unique_commit(node_val_t::downcast(this->end_node()), this->m_data, new_node, context);
- return iterator(new_node);
- }
-
- template <class InputIterator>
- void insert_unique(InputIterator first, InputIterator last)
- {
- for ( ; first != last; ++first)
- this->insert_unique(*first);
- }
-
- iterator insert_equal(const value_type& v)
- {
- node_pointer tmp = this->allocate_and_construct_node(v);
- rb_tree_func_t::insert_equal(node_val_t::downcast(this->end_node()), this->m_data, tmp);
- ++this->m_data.m_node_count;
- return iterator(tmp);
- }
-
- template<class MovableConvertible>
- iterator insert_equal(const detail::moved_object<MovableConvertible> &mv)
- {
- node_pointer tmp = this->allocate_and_construct_node(mv);
- rb_tree_func_t::insert_equal(node_val_t::downcast(this->end_node()), this->m_data, tmp);
- ++this->m_data.m_node_count;
- return iterator(tmp);
- }
-
- iterator insert_equal(iterator hint, const value_type& v)
- {
- node_pointer tmp = this->allocate_and_construct_node(v);
- rb_tree_func_t::insert_equal_hint(node_val_t::downcast(this->end_node()), this->m_data,
- hint.get_ptr(), tmp);
- ++this->m_data.m_node_count;
- return iterator(tmp);
- }
-
- template<class MovableConvertible>
- iterator insert_equal(iterator hint, const detail::moved_object<MovableConvertible> &mv)
- {
- node_pointer tmp = this->allocate_and_construct_node(mv);
- rb_tree_func_t::insert_equal_hint(node_val_t::downcast(this->end_node()), this->m_data,
- hint.get_ptr(), tmp);
- ++this->m_data.m_node_count;
- return iterator(tmp);
- }
-
- template <class InputIterator>
- void insert_equal(InputIterator first, InputIterator last)
- {
- for ( ; first != last; ++first)
- this->insert_equal(*first);
- }
-
- iterator erase(const_iterator position)
- {
- iterator ret(position.get_ptr());
- ++ret;
- node_pointer y = node_val_t::downcast
- (rb_tree_func_t::erase_node(node_val_t::downcast(this->end_node()), position.get_ptr()));
- this->destroy_and_deallocate_node(y);
- --this->m_data.m_node_count;
- return ret;
- }
-
- size_type erase(const key_type& x)
- {
- std::pair<iterator,iterator> p = this->equal_range(x);
- size_type n = std::distance(p.first, p.second);
- this->erase(p.first, p.second);
- return n;
- }
-
- iterator erase(const_iterator first, const_iterator last)
- {
- if (first == this->begin() && last == this->end()){
- this->clear();
- return begin();
- }
- else{
- while (first != last){
- first = this->erase(first);
- }
- return iterator(last.get_ptr());
- }
- }
-
- void clear()
- {
- if (this->m_data.m_node_count) {
- this->erase_node(node_val_t::downcast(this->root()));
-/*
- this->m_end.color() = node_val_t::red_color;
- this->m_end.parent() = 0;
- this->m_end.left() = this->end_node();
- this->m_end.right() = this->end_node();
-*/
- this->m_end.color() = node_val_t::red_color;
- this->root() = 0;
- this->leftmost() = this->end_node();
- this->rightmost() = this->end_node();
-
- this->m_data.m_node_count = 0;
- }
- }
-
- // set operations:
- iterator find(const key_type& k)
- { return iterator(rb_tree_func_t::find(node_val_t::downcast(this->end_node()), this->m_data, k)); }
-
- const_iterator find(const key_type& k) const
- { return const_iterator(rb_tree_func_t::find(node_val_t::downcast(this->end_node()), this->m_data, k)); }
-
- size_type count(const key_type& k) const
- { return size_type(rb_tree_func_t::count(node_val_t::downcast(this->end_node()), this->m_data, k)); }
-
- iterator lower_bound(const key_type& k)
- { return iterator(rb_tree_func_t::lower_bound(node_val_t::downcast(this->end_node()), this->m_data, k)); }
-
- const_iterator lower_bound(const key_type& k) const
- { return const_iterator(rb_tree_func_t::lower_bound(node_val_t::downcast(this->end_node()), this->m_data, k)); }
-
- iterator upper_bound(const key_type& k)
- { return iterator (rb_tree_func_t::upper_bound(node_val_t::downcast(this->end_node()), this->m_data, k)); }
-
- const_iterator upper_bound(const key_type& k) const
- { return const_iterator (rb_tree_func_t::upper_bound(node_val_t::downcast(this->end_node()), this->m_data, k)); }
-
- std::pair<iterator,iterator> equal_range(const key_type& k)
- {
- node_pointer lower, upper;
- rb_tree_func_t::equal_range(node_val_t::downcast(this->end_node()), this->m_data, k, lower, upper);
- return std::pair<iterator, iterator>(iterator(lower), iterator(upper));
- }
-
- std::pair<const_iterator, const_iterator> equal_range(const key_type& k) const
- {
- node_pointer lower, upper;
- rb_tree_func_t::equal_range(node_val_t::downcast(this->end_node()), this->m_data, k, lower, upper);
- return std::pair<const_iterator, const_iterator>(const_iterator(lower), const_iterator(upper));
- }
-
- private:
- basic_node_pointer &root() const
- { return const_cast<basic_node_pointer &>(this->m_end.parent()); }
-
- basic_node_pointer &leftmost() const
- { return const_cast<basic_node_pointer &>(this->m_end.left()); }
-
- basic_node_pointer &rightmost() const
- { return const_cast<basic_node_pointer &>(this->m_end.right()); }
-
- node_pointer clone_node(basic_node_pointer x)
- {
- basic_node_pointer tmp = this->allocate_and_construct_node(node_val_t::downcast(x)->value());
- tmp->color() = x->color();
- tmp->left() = 0;
- tmp->right() = 0;
- return node_val_t::downcast(tmp);
- }
-
- const Compare & get_compare() const
- { return static_cast<const Compare&>(m_data); }
-
- Compare & get_compare()
- { return static_cast<Compare&>(m_data); }
-
- static const Key& get_node_key(node_pointer x)
- { return KeyOfValue()(x->value()); }
-
- node_pointer copy_node(basic_node_pointer x, basic_node_pointer p)
- {
- // structural copy. x and p must be non-null.
- node_pointer top = this->clone_node(x);
- top->parent() = p;
-
- BOOST_TRY {
- if (x->right())
- top->right() = this->copy_node(x->right(), top);
- p = top;
- x = x->left();
-
- while (x) {
- node_pointer y = this->clone_node(x);
- p->left() = y;
- y->parent() = p;
- if (x->right()){
- y->right() = this->copy_node(x->right(), y);
- }
- p = y;
- x = x->left();
- }
- }
- BOOST_CATCH(...){
- this->erase_node(top);
- BOOST_RETHROW;
- }
- BOOST_CATCH_END
-
- return top;
- }
-
- void erase_node(node_pointer x)
- {
- // erase without rebalancing
- while (x) {
- this->erase_node(node_val_t::downcast(x->right()));
- node_pointer y = node_val_t::downcast(x->left());
- this->destroy_and_deallocate_node(x);
- x = y;
- }
- }
-
- private:
- struct Data
- : public Compare
- {
- Data(const Compare &comp, size_type node_count)
- : Compare(comp), m_node_count(node_count){}
-
- Data(const detail::moved_object<Compare> &comp, size_type node_count)
- : Compare(move(comp.get())), m_node_count(node_count){}
-
- size_type m_node_count; // keeps track of size of tree
- } m_data;
-};
-
-template <class Key, class Value, class KeyOfValue,
- class Compare, class Alloc>
-inline bool
-operator==(const rb_tree<Key,Value,KeyOfValue,Compare,Alloc>& x,
- const rb_tree<Key,Value,KeyOfValue,Compare,Alloc>& y)
-{
- return x.size() == y.size() &&
- std::equal(x.begin(), x.end(), y.begin());
-}
-
-template <class Key, class Value, class KeyOfValue,
- class Compare, class Alloc>
-inline bool
-operator<(const rb_tree<Key,Value,KeyOfValue,Compare,Alloc>& x,
- const rb_tree<Key,Value,KeyOfValue,Compare,Alloc>& y)
-{
- return std::lexicographical_compare(x.begin(), x.end(),
- y.begin(), y.end());
-}
-
-template <class Key, class Value, class KeyOfValue,
- class Compare, class Alloc>
-inline bool
-operator!=(const rb_tree<Key,Value,KeyOfValue,Compare,Alloc>& x,
- const rb_tree<Key,Value,KeyOfValue,Compare,Alloc>& y) {
- return !(x == y);
-}
-
-template <class Key, class Value, class KeyOfValue,
- class Compare, class Alloc>
-inline bool
-operator>(const rb_tree<Key,Value,KeyOfValue,Compare,Alloc>& x,
- const rb_tree<Key,Value,KeyOfValue,Compare,Alloc>& y) {
- return y < x;
-}
-
-template <class Key, class Value, class KeyOfValue,
- class Compare, class Alloc>
-inline bool
-operator<=(const rb_tree<Key,Value,KeyOfValue,Compare,Alloc>& x,
- const rb_tree<Key,Value,KeyOfValue,Compare,Alloc>& y) {
- return !(y < x);
-}
-
-template <class Key, class Value, class KeyOfValue,
- class Compare, class Alloc>
-inline bool
-operator>=(const rb_tree<Key,Value,KeyOfValue,Compare,Alloc>& x,
- const rb_tree<Key,Value,KeyOfValue,Compare,Alloc>& y) {
- return !(x < y);
-}
-
-
-template <class Key, class Value, class KeyOfValue,
- class Compare, class Alloc>
-inline void
-swap(rb_tree<Key,Value,KeyOfValue,Compare,Alloc>& x,
- rb_tree<Key,Value,KeyOfValue,Compare,Alloc>& y)
-{
- x.swap(y);
-}
-
-} //namespace detail {
-
-/*!This class is movable*/
-template <class T, class V, class K, class C, class A>
-struct is_movable<detail::rb_tree<T, V, K, C, A> >
-{
- enum { value = true };
-};
-
-/*!This class is movable*/
-template <class A>
-struct is_movable<detail::rb_tree_node<A> >
-{
- enum { value = true };
-};
-
-/*!This class is movable*/
-template <class T, class A>
-struct is_movable<detail::rb_tree_alloc_base<T, A/*, true*/> >
-{
- enum { value = true };
-};
-
-
-} //namespace interprocess {
-} //namespace boost {
-
-#include <boost/interprocess/detail/config_end.hpp>
-
-#endif //BOOST_INTERPROCESS_TREE_HPP
-

Modified: branches/hash/boost/interprocess/detail/algorithms.hpp
==============================================================================
--- branches/hash/boost/interprocess/detail/algorithms.hpp (original)
+++ branches/hash/boost/interprocess/detail/algorithms.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -20,11 +20,19 @@
 #include <boost/interprocess/detail/config_begin.hpp>
 #include <boost/interprocess/detail/workaround.hpp>
 #include <boost/interprocess/detail/iterators.hpp>
+#include <boost/interprocess/detail/mpl.hpp>
+#include <boost/interprocess/detail/utilities.hpp>
 #include <boost/get_pointer.hpp>
 #include <boost/detail/no_exceptions_support.hpp>
 
 namespace boost {
-namespace interprocess {
+namespace interprocess {
+
+template<class T>
+struct has_own_construct_from_it
+{
+ static const bool value = false;
+};
 
 template<class FwdIt, class T>
 void uninitialized_fill(FwdIt first, FwdIt last, const T& val)
@@ -106,12 +114,29 @@
    return (constructed);
 }
 
+namespace detail {
+
 template<class T, class InpIt>
-inline void construct_in_place(T* dest, InpIt source)
+inline void construct_in_place(T* dest, const InpIt &source, detail::true_)
+{
+ T::construct(dest, *source);
+}
+
+template<class T, class InpIt>
+inline void construct_in_place(T* dest, const InpIt &source, detail::false_)
 {
    new(dest)T(*source);
 }
 
+} //namespace detail {
+
+template<class T, class InpIt>
+inline void construct_in_place(T* dest, InpIt source)
+{
+ typedef detail::bool_<has_own_construct_from_it<T>::value> boolean_t;
+ detail::construct_in_place(dest, source, boolean_t());
+}
+
 template<class T, class U, class D>
 inline void construct_in_place(T *dest, default_construct_iterator<U, D>)
 {

Deleted: branches/hash/boost/interprocess/detail/multi_segment_services.hpp
==============================================================================
--- branches/hash/boost/interprocess/detail/multi_segment_services.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
+++ (empty file)
@@ -1,46 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztañaga 2005-2006. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/interprocess for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef BOOST_INTERPROCESS_MULTI_SEGMENT_SERVICES_HPP
-#define BOOST_INTERPROCESS_MULTI_SEGMENT_SERVICES_HPP
-
-#if (defined _MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/detail/workaround.hpp>
-
-
-/*!\file
- Describes a named shared memory allocation user class.
-*/
-
-namespace boost {
-
-namespace interprocess {
-
-class multi_segment_services
-{
- public:
- virtual std::pair<void *, std::size_t> create_new_segment(std::size_t mem) = 0;
- virtual bool update_segments () = 0;
- virtual ~multi_segment_services() = 0;
-};
-
-inline multi_segment_services::~multi_segment_services()
-{}
-
-
-}} //namespace boost { namespace interprocess {
-
-#include <boost/interprocess/detail/config_end.hpp>
-
-#endif //#ifdef BOOST_INTERPROCESS_MULTI_SEGMENT_SERVICES_HPP

Modified: branches/hash/boost/interprocess/detail/os_thread_functions.hpp
==============================================================================
--- branches/hash/boost/interprocess/detail/os_thread_functions.hpp (original)
+++ branches/hash/boost/interprocess/detail/os_thread_functions.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -32,8 +32,12 @@
 
 #if (defined BOOST_WINDOWS) && !(defined BOOST_DISABLE_WIN32)
 
+typedef unsigned long OS_process_id_t;
 typedef unsigned long OS_thread_id_t;
 
+inline OS_process_id_t get_current_process_id()
+{ return winapi::get_current_process_id(); }
+
 inline OS_thread_id_t get_current_thread_id()
 { return winapi::get_current_thread_id(); }
 
@@ -49,6 +53,10 @@
 #else //#if (defined BOOST_WINDOWS) && !(defined BOOST_DISABLE_WIN32)
 
 typedef pthread_t OS_thread_id_t;
+typedef int OS_process_id_t;
+
+inline OS_process_id_t get_current_process_id()
+{ return getpid(); }
 
 inline pthread_t get_current_thread_id()
 { return pthread_self(); }

Modified: branches/hash/boost/interprocess/detail/utilities.hpp
==============================================================================
--- branches/hash/boost/interprocess/detail/utilities.hpp (original)
+++ branches/hash/boost/interprocess/detail/utilities.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -344,30 +344,6 @@
    enum { value = false };
 };
 
-/*!A Interprocess shared pointer deleter that uses the segment manager's
- destroy_ptr function to destroy the shared resource.*/
-template<class T, class SegmentManager>
-class deleter
-{
- public:
- typedef typename detail::pointer_to_other
- <typename SegmentManager::void_pointer, T>::type pointer;
-
- private:
- typedef typename detail::pointer_to_other
- <pointer, SegmentManager>::type segment_manager_pointer;
-
- segment_manager_pointer mp_deleter;
-
- public:
- deleter(const segment_manager_pointer &pdeleter)
- : mp_deleter(pdeleter)
- {}
-
- void operator()(const pointer &p)
- { mp_deleter->destroy_ptr(detail::get_pointer(p)); }
-};
-
 template <class SizeType>
 SizeType
    get_next_capacity(const SizeType max_size

Modified: branches/hash/boost/interprocess/detail/win32_api.hpp
==============================================================================
--- branches/hash/boost/interprocess/detail/win32_api.hpp (original)
+++ branches/hash/boost/interprocess/detail/win32_api.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -22,8 +22,11 @@
 # include <stddef.h>
 # include <stdarg.h>
 # include <boost/detail/interlocked.hpp>
+# if !defined(__MINGW32__)
+# pragma comment( lib, "advapi32.lib" )//auto-unlink security features
+# endif
 #else
-# error "This file can only be included in Windows OS"
+# error "This file can only be included in Windows OS"
 #endif
 
 //The structures used in Interprocess with the
@@ -109,6 +112,7 @@
 static const unsigned long lockfile_fail_immediately = 1;
 static const unsigned long lockfile_exclusive_lock = 2;
 static const unsigned long error_lock_violation = 33;
+static const unsigned long security_descriptor_revision = 1;
 
 } //namespace winapi {
 } //namespace interprocess {
@@ -178,7 +182,28 @@
    unsigned long Type;
 };
 
+typedef struct _interprocess_acl
+{
+ unsigned char AclRevision;
+ unsigned char Sbz1;
+ unsigned short AclSize;
+ unsigned short AceCount;
+ unsigned short Sbz2;
+} interprocess_acl;
+
+typedef struct _interprocess_security_descriptor
+{
+ unsigned char Revision;
+ unsigned char Sbz1;
+ unsigned short Control;
+ void *Owner;
+ void *Group;
+ interprocess_acl *Sacl;
+ interprocess_acl *Dacl;
+} interprocess_security_descriptor;
+
 //Some windows API declarations
+extern "C" __declspec(dllimport) unsigned long __stdcall GetCurrentProcessId();
 extern "C" __declspec(dllimport) unsigned long __stdcall GetCurrentThreadId();
 extern "C" __declspec(dllimport) void __stdcall Sleep(unsigned long);
 extern "C" __declspec(dllimport) unsigned long __stdcall GetLastError();
@@ -223,7 +248,10 @@
 extern "C" __declspec(dllimport) int __stdcall LockFileEx(void *hnd, unsigned long flags, unsigned long reserved, unsigned long size_low, unsigned long size_high, interprocess_overlapped* overlapped);
 extern "C" __declspec(dllimport) int __stdcall UnlockFileEx(void *hnd, unsigned long reserved, unsigned long size_low, unsigned long size_high, interprocess_overlapped* overlapped);
 extern "C" __declspec(dllimport) int __stdcall WriteFile(void *hnd, const void *buffer, unsigned long bytes_to_write, unsigned long *bytes_written, interprocess_overlapped* overlapped);
-
+extern "C" __declspec(dllimport) int __stdcall InitializeSecurityDescriptor
+ (void *pSecurityDescriptor, unsigned long dwRevision);
+extern "C" __declspec(dllimport) int __stdcall SetSecurityDescriptorDacl
+ ( void *pSecurityDescriptor, int bDaclPresent, interprocess_acl *pDacl, int bDaclDefaulted);
 /*
 extern "C" __declspec(dllimport) long __stdcall InterlockedIncrement( long volatile * );
 extern "C" __declspec(dllimport) long __stdcall InterlockedDecrement( long volatile * );
@@ -266,6 +294,9 @@
 static inline unsigned long get_current_thread_id()
 { return GetCurrentThreadId(); }
 
+static inline unsigned long get_current_process_id()
+{ return GetCurrentProcessId(); }
+
 static inline unsigned int close_handle(void* handle)
 { return CloseHandle(handle); }
 
@@ -313,7 +344,20 @@
 { return OpenSemaphoreA(semaphore_all_access, 1, name); }
 
 static inline void * create_file_mapping (void * handle, unsigned long access, unsigned long high_size, unsigned long low_size, const char * name)
-{ return CreateFileMappingA (handle, 0, access, high_size, low_size, name); }
+{
+ interprocess_security_attributes sa;
+ interprocess_security_descriptor sd;
+
+ if(!InitializeSecurityDescriptor(&sd, security_descriptor_revision))
+ return 0;
+ if(!SetSecurityDescriptorDacl(&sd, true, 0, false))
+ return 0;
+ sa.lpSecurityDescriptor = &sd;
+ sa.nLength = sizeof(interprocess_security_attributes);
+ sa.bInheritHandle = false;
+ return CreateFileMappingA (handle, &sa, access, high_size, low_size, name);
+ //return CreateFileMappingA (handle, 0, access, high_size, low_size, name);
+}
 
 static inline void * open_file_mapping (unsigned long access, const char *name)
 { return OpenFileMappingA (access, 0, name); }

Modified: branches/hash/boost/interprocess/indexes/iunordered_set_index.hpp
==============================================================================
--- branches/hash/boost/interprocess/indexes/iunordered_set_index.hpp (original)
+++ branches/hash/boost/interprocess/indexes/iunordered_set_index.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -275,7 +275,7 @@
    //!previously allocated.
    void shrink_to_fit()
    {
- size_type cur_size = this->size();
+ //size_type cur_size = this->size();
       size_type cur_count = this->bucket_count();
       bucket_ptr old_p = this->bucket_pointer();
       size_type sug_count;

Deleted: branches/hash/boost/interprocess/intersegment_ptr.hpp
==============================================================================
--- branches/hash/boost/interprocess/intersegment_ptr.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
+++ (empty file)
@@ -1,904 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztañaga 2005-2006. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/interprocess for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef BOOST_INTERSEGMENT_PTR_HPP
-#define BOOST_INTERSEGMENT_PTR_HPP
-
-#if (defined _MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/detail/workaround.hpp>
-
-#include <boost/interprocess/interprocess_fwd.hpp>
-#include <boost/interprocess/detail/utilities.hpp>
-#include <boost/interprocess/detail/generic_cast.hpp>
-#include <boost/interprocess/detail/cast_tags.hpp>
-#include <boost/assert.hpp>
-#include <boost/interprocess/sync/scoped_lock.hpp>
-#include <boost/type_traits/has_trivial_constructor.hpp>
-#include <boost/type_traits/has_trivial_destructor.hpp>
-#include <boost/interprocess/sync/interprocess_mutex.hpp>
-#include <boost/interprocess/containers/flat_map.hpp>
-#include <boost/detail/no_exceptions_support.hpp>
-#include <limits.h>
-
-/*!\file
-*/
-namespace boost {
-
-namespace interprocess {
-
-/*!Configures intersegment_ptr with the capability to address:
- 2^(sizeof(std::size_t)*CHAR_BIT/2) segment groups
- 2^(sizeof(std::size_t)*CHAR_BIT/2) segments per group.
- 2^(sizeof(std::size_t)*CHAR_BIT/2)-1 bytes maximum per segment.
- The mapping is implemented through flat_maps synchronized with mutexes.*/
-template <class Mutex>
-struct flat_map_intersegment
-{
- typedef flat_map_intersegment<Mutex> self_t;
- typedef std::size_t offset_t;
- typedef std::size_t segment_t;
-
- /*!Returns true if object represents null pointer*/
- bool is_null() const
- { return m_offset == ~offset_t(0); }
-
- /*!Sets the object to represent the null pointer*/
- void set_null()
- { m_offset = ~offset_t(0); }
-
- /*!Sets the object internals to represent the address pointed by ptr*/
- void set_from_pointer(const void *ptr)
- {
- if(!ptr){
- set_null();
- }
- else{
- segment_t id1, id2;
- offset_t offset1, offset2;
- {
- //------------------------------------------------------------------
- boost::interprocess::scoped_lock<typename mappings_t::mutex_type> lock(s_map);
- //------------------------------------------------------------------
- get_segment_and_offset(ptr, id1, offset1);
- get_segment_and_offset(this, id2, offset2);
- }
- m_distance = id1 - id2;
- m_offset = offset1;
- }
- }
-
- /*!Sets the object internals to represent the address pointed
- by another flat_map_intersegment*/
- void set_from_other(const self_t &other)
- {
- if(other.is_null()){
- set_null();
- }
- else{
- segment_t id1, id2;
- {
- //------------------------------------------------------------------
- boost::interprocess::scoped_lock<typename mappings_t::mutex_type> lock(s_map);
- //------------------------------------------------------------------
- offset_t off;
- get_segment_and_offset(&other, id1, off);
- get_segment_and_offset(this, id2, off);
- }
- m_distance = id1 + other.m_distance - id2;
- m_offset = other.m_offset;
- }
- }
-
- /*!Obtains the address pointed by the object*/
- void *get_pointer() const
- {
- segment_t id1;
- offset_t off;
- void * base_addr = 0;
- if(is_null()){
- return base_addr;
- }
- else{
- {
- //------------------------------------------------------------------
- boost::interprocess::scoped_lock<typename mappings_t::mutex_type> lock(s_map);
- //------------------------------------------------------------------
- get_segment_and_offset(this, id1, off);
- segment_t target_segment = segment_t(id1+m_distance);
- base_addr = get_base_address(target_segment);
- }
- return detail::char_ptr_cast(base_addr) + m_offset;
- }
- }
-
- /*!Swaps two objects efficiently*/
- void swap(self_t &other)
- {
- //This specialized swap avoids some costly operations
- segment_t id1, id2, id;
- offset_t off;
- {
- //------------------------------------------------------------------
- boost::interprocess::scoped_lock<typename mappings_t::mutex_type> lock(s_map);
- //------------------------------------------------------------------
- get_segment_and_offset(&other, id1, off);
- get_segment_and_offset(this, id2, off);
- }
- //Swap offset value
- off = m_offset; m_offset = other.m_offset; other.m_offset = off;
- //Calculate new segment distance. Let overflow do its work
- id = m_distance;
- m_distance = id1 + other.m_distance - id2;
- other.m_distance = id2 + id - id1;
- }
-
- /*!Increments internal offset*/
- void inc_offset(offset_t bytes)
- { m_offset += bytes; }
-
- /*!Decrements internal offset*/
- void dec_offset(offset_t bytes)
- { m_offset -= bytes; }
-
- /*!Calculates the distance between two basic_intersegment_ptr-s.
- This only works with two basic_intersegment_ptr pointing
- to the same segment. Otherwise undefined*/
- offset_t diff(const self_t &other) const
- { return m_offset - other.m_offset; }
-
- /*!Returns true if both point to the same object*/
- bool equal(const self_t &y) const
- {
- if(m_offset != y.m_offset){
- return false;
- }
- else{
- segment_t id1, id2;
- offset_t off;
- {
- //------------------------------------------------------------------
- boost::interprocess::scoped_lock<typename mappings_t::mutex_type> lock(s_map);
- //------------------------------------------------------------------
- get_segment_and_offset(this, id1, off);
- get_segment_and_offset(&y, id2, off);
- }
- return segment_t(id1 + m_distance) == segment_t(id2 + y.m_distance);
- }
- }
-
- /*!Returns true if *this is less than other.
- This only works with two basic_intersegment_ptr pointing
- to the same segment group. Otherwise undefined. Never throws*/
- bool less(const self_t &y) const
- {
- segment_t id1, id2;
- offset_t off;
- {
- //------------------------------------------------------------------
- boost::interprocess::scoped_lock<typename mappings_t::mutex_type> lock(s_map);
- //------------------------------------------------------------------
- get_segment_and_offset(this, id1, off);
- get_segment_and_offset(&y, id2, off);
- }
- id1 = segment_t(id1 + m_distance);
- id2 = segment_t(id2 + y.m_distance);
- return (id1 < id2) || (id1 == id2 && m_offset < y.m_offset);
- }
-
- //--------------------------------------------------------------------------
-
- static void get_group_and_id(void *addr, std::size_t &group, std::size_t &id)
- {
- {
- //------------------------------------------------------------------
- boost::interprocess::scoped_lock<typename mappings_t::mutex_type> lock(s_map);
- //------------------------------------------------------------------
- get_segment_and_offset(addr, group, id);
- }
- group = group >> s_shift;
- }
-
- /*!Returns the polymorphic multi-segment creator associated with a
- segment-group. Returns 0 if not found or an error occurs.*/
- static void* find_group_data(std::size_t group)
- {
- typedef typename mappings_t::group_to_data_t::iterator it_t;
- //------------------------------------------------------------------
- boost::interprocess::scoped_lock<typename mappings_t::mutex_type> lock(s_map);
- //------------------------------------------------------------------
- it_t it(s_map.group_to_data.find(group));
- if(it == s_map.group_to_data.end()){
- return 0;
- }
- return it->second;
- }
-
- /*!Reserves a segment-group, installs the associated polymorphic
- segment-creator, and the segment passed as (base, size) as
- the segment id = 0 of the new group. Returns the group that will
- be associated with this segment. Returns 0 if there are no available
- groups or an error occurs.*/
- static std::size_t new_group(void *group_data)
- {
- typedef typename mappings_t::group_to_data_t::iterator it_t;
- typedef typename mappings_t::group_to_data_t::value_type value_type;
- typedef std::pair<it_t, bool> insert_ret;
- std::size_t group = 0;
-
- BOOST_TRY{
- //------------------------------------------------------------------
- boost::interprocess::scoped_lock<typename mappings_t::mutex_type> lock(s_map);
- //------------------------------------------------------------------
- //Check if there are too many groups
- if(s_map.group_to_data.size() >= (s_max_value - 1) ){
- return 0;
- }
- //Check if there are no registered groups or the first one
- //is not group 1, assign id 1 to the new group.
- else if(s_map.group_to_data.empty() ||
- s_map.group_to_data.begin()->first != 1){
- group = 1;
- }
- //If not, take a not used number
- else{
- it_t it1(s_map.group_to_data.begin()),
- it2(it1),
- itend(s_map.group_to_data.end());
-
- for(++it2; it2 != itend; ++it1, ++it2){
- if(it2->first - it1->first > 1){
- break;
- }
- }
- group = it1->first+1;
- }
- insert_ret ret =
- s_map.group_to_data.insert(value_type(group, group_data));
- //This insertion must succeed
- assert(ret.second);
- if(!ret.second) return false;
- return group;
- }
- BOOST_CATCH(const std::bad_alloc &){}
- BOOST_CATCH_END
- return 0;
- }
-
- /*!Erases the mapping between a group and the associated polymorphic pointer.
- Returns false if the group is not found or there is an error*/
- static bool delete_group(std::size_t group)
- {
- //------------------------------------------------------------------
- boost::interprocess::scoped_lock<typename mappings_t::mutex_type> lock(s_map);
- //------------------------------------------------------------------
- typedef typename mappings_t::segment_to_ptr_t::iterator it_t;
-
- //Find the range of the group
- it_t first_of_group(s_map.segment_to_ptr.lower_bound(group << s_shift));
- it_t one_past_group(s_map.segment_to_ptr.lower_bound((group+1)<< s_shift));
-
- //Erase all info related to the group
- for(it_t it(first_of_group); it != one_past_group; ++it){
- //Erase entry from addr-segment
- if(!s_map.ptr_to_segment.erase(it->second)){
- //This can't be possible since both indexes should be synchronized
- assert(false);
- return false;
- }
- }
- //Erase all info from groups
- s_map.segment_to_ptr.erase(first_of_group, one_past_group);
-
- //Erase the group info
- bool ret = s_map.group_to_data.erase(group) == 1;
- assert(ret);
- if(!ret) return false;
- //Erase all mappings of this group
- return true;
- }
-
- /*!Associates a segment defined by group/id with a base address and size.
- Returns false if the group is not found or there is an error*/
- static bool insert_mapping(std::size_t group, std::size_t id,
- void *base_address, std::size_t size)
- {
- //Check limits
- if(group > s_max_value || id > s_max_value){
- return false;
- }
-
- BOOST_TRY{
- typedef typename mappings_t::ptr_to_segment_t::value_type ptr_to_segment_val_t;
- typedef typename mappings_t::segment_to_ptr_t::value_type segment_to_ptr_val_t;
- typedef typename mappings_t::ptr_to_segment_t::iterator ptr_to_segment_it_t;
- typedef typename mappings_t::segment_to_ptr_t::iterator segment_to_ptr_it_t;
- typedef std::pair<ptr_to_segment_it_t, bool> ptr_to_segment_ret_t;
- typedef std::pair<segment_to_ptr_it_t, bool> segment_to_ptr_ret_t;
-
- //Compose segment identification
- segment_t segment = (group << s_shift) | id;
- typename mappings_t:: segment_info_t segment_info;
- segment_info.segment = segment;
- segment_info.size = size;
-
- {
- //------------------------------------------------------------------
- boost::interprocess::scoped_lock<typename mappings_t::mutex_type> lock(s_map);
- //------------------------------------------------------------------
- //This can throw
- ptr_to_segment_ret_t ptr_to_segment_ret =
- s_map.ptr_to_segment.insert(ptr_to_segment_val_t(base_address, segment_info));
-
- if(!ptr_to_segment_ret.second)
- return false;
-
- //Node eraser will erase the node if an exception occurs
- detail::value_eraser<typename mappings_t::ptr_to_segment_t>
- value_eraser(s_map.ptr_to_segment, ptr_to_segment_ret.first);
-
- //This can throw
- segment_to_ptr_ret_t segment_to_ptr_ret =
- s_map.segment_to_ptr.insert(segment_to_ptr_val_t(segment, base_address));
-
- if(!segment_to_ptr_ret.second){
- //This should never occur, since both maps must have
- //the same elements indexed by different key
- assert(!segment_to_ptr_ret.second);
- return false;
- }
- //Insertion ok, release value_eraser
- value_eraser.release();
- return true;
- }
- }
- BOOST_CATCH(...){
- return false;
- }
- BOOST_CATCH_END
- }
-
- static bool erase_mapping(void *base_address)
- {
- typedef typename mappings_t::ptr_to_segment_t::iterator ptr_to_segment_it_t;
- typedef typename mappings_t::segment_to_ptr_t::iterator segment_to_ptr_it_t;
-
- { //------------------------------------------------------------------
- boost::interprocess::scoped_lock<typename mappings_t::mutex_type> lock(s_map);
- //------------------------------------------------------------------
- ptr_to_segment_it_t ptr_to_segment_it = s_map.ptr_to_segment.find(base_address);
- if(ptr_to_segment_it == s_map.ptr_to_segment.end()){
- //This group/id is not an valid entry
- assert(ptr_to_segment_it == s_map.ptr_to_segment.end());
- return false;
- }
- //Obtain segment
- segment_t segment = ptr_to_segment_it->second.segment;
- //Erase node from map
- s_map.ptr_to_segment.erase(ptr_to_segment_it);
- //Erase entry in the second map
- if(!s_map.segment_to_ptr.erase(segment)){
- //This can't be possible since both indexes should be synchronized
- assert(false);
- return false;
- }
- }
- return true;
- }
-
- static bool erase_mapping(std::size_t group, std::size_t id)
- {
- //Check limits
- if(group > s_max_value || id > s_max_value){
- return false;
- }
-
- typedef typename mappings_t::ptr_to_segment_t::iterator ptr_to_segment_it_t;
- typedef typename mappings_t::segment_to_ptr_t::iterator segment_to_ptr_it_t;
-
- //Compose segment identification
- segment_t segment = (group << s_shift) | id;
- { //------------------------------------------------------------------
- boost::interprocess::scoped_lock<typename mappings_t::mutex_type> lock(s_map);
- //------------------------------------------------------------------
- segment_to_ptr_it_t segment_to_ptr_it = s_map.segment_to_ptr.find(segment);
- if(segment_to_ptr_it == s_map.segment_to_ptr.end()){
- //This group/id is not an valid entry
- assert(segment_to_ptr_it != s_map.segment_to_ptr.end());
- return false;
- }
- //Obtain address
- void *address = segment_to_ptr_it->second;
- //Erase node from map
- s_map.segment_to_ptr.erase(segment_to_ptr_it);
- //Erase entry in the second map
- if(!s_map.ptr_to_segment.erase(address)){
- //This can't be possible since both indexes should be synchronized
- assert(false);
- return false;
- }
- }
- return true;
- }
-
- private:
- /*!Half of the bits are for group id and the
- other half for the index inside the group
- unsigned group : sizeof(std::size_t)/2;
- unsigned index : sizeof(std::size_t)/2;*/
- segment_t m_distance;
- offset_t m_offset;
-
- struct mappings_t : Mutex
- {
- struct segment_info_t
- {
- std::size_t size;
- segment_t segment;
- };
-
- /*!Mutex to preserve integrity in multi-threaded enviroments*/
- typedef Mutex mutex_type;
- /*!Maps base addresses and segment information
- (size and segment group and id)*/
- typedef boost::interprocess::flat_map
- <const void *
- ,segment_info_t
- ,std::less<const void *> > ptr_to_segment_t;
- /*!Maps segment group/id with base addresses*/
- typedef boost::interprocess::flat_map
- <segment_t, void *> segment_to_ptr_t;
- /*!Maps segment group with a polymorphic multi-segment creator
- that knows how to create new segments*/
- typedef boost::interprocess::flat_map
- <segment_t, void*> group_to_data_t;
-
- ptr_to_segment_t ptr_to_segment;
- segment_to_ptr_t segment_to_ptr;
- group_to_data_t group_to_data;
-
- ~mappings_t()
- {
- //Check that all mappings have been erased
- assert(ptr_to_segment.empty());
- assert(segment_to_ptr.empty());
- assert(group_to_data.empty());
- }
- };
-
- //Static members
- static mappings_t s_map;
- static const std::size_t s_shift = sizeof(std::size_t)*CHAR_BIT/2;
- static const std::size_t s_max_value = std::size_t(1) << s_shift;
-
- private:
-
- /*!Returns the segment and offset of an address*/
- static void get_segment_and_offset(const void *ptr, segment_t &segment, offset_t &offset)
- {
- if(s_map.ptr_to_segment.empty()){
- segment = 0;
- offset = detail::char_ptr_cast(ptr) - detail::char_ptr_cast();
- }
- //Find the first base address greater than ptr
- typename mappings_t::ptr_to_segment_t::iterator it
- = s_map.ptr_to_segment.upper_bound(ptr);
- if(it == s_map.ptr_to_segment.begin()){
- segment = 0;
- offset = detail::char_ptr_cast(ptr) - detail::char_ptr_cast();
- }
- //Go to the previous one
- --it;
- char * segment_base = detail::char_ptr_cast(it->first);
- std::size_t segment_size = it->second.size;
-
- if(segment_base <= detail::char_ptr_cast(ptr) &&
- (segment_base + segment_size) >= detail::char_ptr_cast(ptr)){
- segment = it->second.segment;
- offset = detail::char_ptr_cast(ptr) - segment_base;
- }
- else{
- segment = 0;
- offset = detail::char_ptr_cast(ptr) - detail::char_ptr_cast();
- }
- }
-
- /*!Returns the base address of a segment*/
- static void *get_base_address(segment_t segment)
- {
- typename mappings_t::segment_to_ptr_t::iterator it
- = s_map.segment_to_ptr.find(segment);
-
- if(it == s_map.segment_to_ptr.end()){
- return 0;
- }
- else{
- return it->second;
- }
- }
-};
-
-/*!Static map-group associated with flat_map_intersegment<>*/
-template <class Mutex>
-typename flat_map_intersegment<Mutex>::mappings_t
- flat_map_intersegment<Mutex>::s_map;
-
-/*!Static constant that shows the number of bits to shift to obtain the
- group part of segment_t type*/
-template <class Mutex>
-const std::size_t flat_map_intersegment<Mutex>::s_shift;
-
-/*!Static constant that shows the number of bits to shift to obtain the
- group part of segment_t type*/
-template <class Mutex>
-const std::size_t flat_map_intersegment<Mutex>::s_max_value;
-
-/*!
- A smart pointer that can point to a pointee that resides in another memory
- memory mapped or shared memory segment.
-*/
-template <class T/*, class PT*/>
-class intersegment_ptr : public flat_map_intersegment<interprocess_mutex> //: public PT
-{
- typedef flat_map_intersegment<interprocess_mutex> PT;
- typedef boost::interprocess::workaround::random_it<T> random_it_t;
-// typedef intersegment_ptr<T, PT> self_t;
- typedef intersegment_ptr<T> self_t;
- typedef PT base_t;
- typedef typename random_it_t::const_pointer const_pointer_t;
- typedef typename random_it_t::const_reference const_reference_t;
-
- void unspecified_bool_type_func() const {}
- typedef void (self_t::*unspecified_bool_type)() const;
-
- public:
- typedef typename random_it_t::pointer pointer;
- typedef typename random_it_t::reference reference;
- typedef typename random_it_t::value_type value_type;
- typedef typename random_it_t::difference_type difference_type;
- typedef typename random_it_t::iterator_category iterator_category;
-
- public: //Public Functions
-
- /*!Constructor from raw pointer (allows "0" pointer conversion). Never throws.*/
- intersegment_ptr(pointer ptr = 0) { base_t::set_from_pointer(ptr); }
-
- /*!Constructor from other pointer. Never throws.*/
- template <class U>
- intersegment_ptr(U *ptr){ base_t::set_from_pointer(pointer(ptr)); }
-
- /*!Constructor from other intersegment_ptr */
- intersegment_ptr(const intersegment_ptr& ptr)
- { base_t::set_from_other(ptr); }
-
- /*!Constructor from other intersegment_ptr. If pointers of pointee types are
- convertible, intersegment_ptrs will be convertibles. Never throws.*/
- template<class T2>
- intersegment_ptr(const intersegment_ptr<T2/*, PT*/> &ptr)
- { pointer p(ptr.get()); (void)p; base_t::set_from_other(ptr); }
-
- /*!Emulates static_cast operator. Never throws. */
- template<class U>
- intersegment_ptr(const intersegment_ptr<U/*, PT*/> &r, detail::static_cast_tag)
- //{ base_t::set_from_pointer(static_cast<T*>(r.get())); }
- {
- if(r.is_null()){
- base_t::set_from_pointer(0);
- }
- else{
- //Some dirty tricks to safe segment operations.
- //Calculate pointer adjustment and adjust offset.
- pointer ptr = reinterpret_cast<pointer>(this);
- std::ptrdiff_t difference = detail::char_ptr_cast(static_cast<T*>(ptr)) -
- detail::char_ptr_cast(ptr);
- base_t::set_from_other(r);
- base_t::inc_offset(difference*sizeof(T));
- }
- }
-
- /*!Emulates const_cast operator. Never throws.*/
- template<class U>
- intersegment_ptr(const intersegment_ptr<U/*, PT*/> &r, detail::const_cast_tag)
- { base_t::set_from_pointer(const_cast<T*>(r.get())); }
- /*
- {
- //Make sure const conversion is correct
- pointer p = const_cast<pointer>((U*)0); (void)p;
- base_t::set_from_other(r);
- }*/
-
- /*!Emulates dynamic_cast operator. Never throws.*/
- template<class U>
- intersegment_ptr(const intersegment_ptr<U/*, PT*/> &r, detail::dynamic_cast_tag)
- { base_t::set_from_pointer(dynamic_cast<T*>(r.get())); }
-
- /*!Emulates reinterpret_cast operator. Never throws.*/
- template<class U>
- intersegment_ptr(const intersegment_ptr<U/*, PT*/> &r, detail::reinterpret_cast_tag)
- { base_t::set_from_pointer(reinterpret_cast<T*>(r.get())); }
-
- /*!Obtains raw pointer from offset. Never throws.*/
- pointer get()const
- { return (pointer)base_t::get_pointer(); }
-
- /*!Pointer-like -> operator. It can return 0 pointer. Never throws.*/
- pointer operator->() const
- { return self_t::get(); }
-
- /*!Dereferencing operator, if it is a null intersegment_ptr behavior
- is undefined. Never throws.*/
- reference operator* () const
- { return *(self_t::get()); }
-
- /*!Indexing operator. Never throws.*/
- reference operator[](std::ptrdiff_t idx) const
- { return self_t::get()[idx]; }
-
- /*!Assignment from pointer (saves extra conversion). Never throws.*/
- intersegment_ptr& operator= (pointer from)
- { base_t::set_from_pointer(from); return *this; }
-
- /*!Assignment from other intersegment_ptr. Never throws.*/
- intersegment_ptr& operator= (const intersegment_ptr &ptr)
- { base_t::set_from_other(ptr); return *this; }
-
- /*!Assignment from related intersegment_ptr. If pointers of pointee types
- are assignable, intersegment_ptrs will be assignable. Never throws.*/
- template <class T2>
- intersegment_ptr& operator= (const intersegment_ptr<T2/*, PT*/> & ptr)
- {
- pointer p(ptr.get()); (void)p;
- base_t::set_from_other(ptr); return *this;
- }
-
- /*!intersegment_ptr + std::ptrdiff_t. Never throws.*/
- intersegment_ptr operator+ (std::ptrdiff_t idx) const
- {
- intersegment_ptr result (*this);
- result.inc_offset(idx*sizeof(T));
- return result;
- }
-
- /*!intersegment_ptr - std::ptrdiff_t. Never throws.*/
- intersegment_ptr operator- (std::ptrdiff_t idx) const
- {
- intersegment_ptr result (*this);
- result.dec_offset(idx*sizeof(T));
- return result;
- }
-
- /*!intersegment_ptr += std::ptrdiff_t. Never throws.*/
- intersegment_ptr &operator+= (std::ptrdiff_t offset)
- { base_t::inc_offset(offset*sizeof(T)); return *this; }
-
- /*!intersegment_ptr -= std::ptrdiff_t. Never throws.*/
- intersegment_ptr &operator-= (std::ptrdiff_t offset)
- { base_t::dec_offset(offset*sizeof(T)); return *this; }
-
- /*!++intersegment_ptr. Never throws.*/
- intersegment_ptr& operator++ (void)
- { base_t::inc_offset(sizeof(T)); return *this; }
-
- /*!intersegment_ptr++. Never throws.*/
- intersegment_ptr operator++ (int)
- { intersegment_ptr temp(*this); ++*this; return temp; }
-
- /*!--intersegment_ptr. Never throws.*/
- intersegment_ptr& operator-- (void)
- { base_t::dec_offset(sizeof(T)); return *this; }
-
- /*!intersegment_ptr--. Never throws.*/
- intersegment_ptr operator-- (int)
- { intersegment_ptr temp(*this); --*this; return temp; }
-
- /*!Safe bool conversion operator. Never throws.*/
- operator unspecified_bool_type() const
- { return base_t::is_null()? 0 : &self_t::unspecified_bool_type_func; }
-
- /*!Not operator. Not needed in theory, but improves portability.
- Never throws.*/
- bool operator! () const
- { return base_t::is_null(); }
-
- /*!Swaps two intersegment_ptr-s. More efficient than std::swap.
- Never throws.*/
- void swap(intersegment_ptr &other)
- { base_t::swap(other); }
-
- /*!Calculates the distance between two intersegment_ptr-s.
- This only works with two basic_intersegment_ptr pointing
- to the same segment. Otherwise undefined*/
- template <class T2>
- bool _diff(const intersegment_ptr<T2/*, PT*/> &other) const
- { return base_t::less(other); }
-
- /*!Returns true if both point to the same object*/
- template <class T2>
- bool _equal(const intersegment_ptr<T2/*, PT*/> &other) const
- { return base_t::equal(other); }
-
- /*!Returns true if *this is less than other.
- This only works with two basic_intersegment_ptr pointing
- to the same segment group. Otherwise undefined. Never throws*/
- template <class T2>
- bool _less(const intersegment_ptr<T2/*, PT*/> &other) const
- { return base_t::less(other); }
-};
-
-/*!Compares the equality of two intersegment_ptr-s.
- Never throws.*/
-template <class T1, class T2/*, class PT1*/> inline
-bool operator ==(const intersegment_ptr<T1/*, PT1*/> &left,
- const intersegment_ptr<T2/*, PT1*/> &right)
-{
- //Make sure both pointers can be compared
- bool e = typename intersegment_ptr<T1/*, PT1*/>::pointer(0) ==
- typename intersegment_ptr<T2/*, PT1*/>::pointer(0);
- (void)e;
- return left._equal(right);
-}
-
-/*!Returns true if *this is less than other.
- This only works with two basic_intersegment_ptr pointing
- to the same segment group. Otherwise undefined. Never throws*/
-template <class T1, class T2/*, class PT1*/> inline
-bool operator <(const intersegment_ptr<T1/*, PT1*/> &left,
- const intersegment_ptr<T2/*, PT1*/> &right)
-{
- //Make sure both pointers can be compared
- bool e = typename intersegment_ptr<T1/*, PT1*/>::pointer(0) <
- typename intersegment_ptr<T2/*, PT1*/>::pointer(0);
- (void)e;
- return left._less(right);
-}
-
-template<class T1, class T2/*, class PT*/> inline
-bool operator!= (const intersegment_ptr<T1/*, PT*/> &pt1,
- const intersegment_ptr<T2/*, PT*/> &pt2)
-{ return !(pt1 ==pt2); }
-
-/*!intersegment_ptr<T1> <= intersegment_ptr<T2, PT>. Never throws.*/
-template<class T1, class T2/*, class PT*/> inline
-bool operator<= (const intersegment_ptr<T1/*, PT*/> &pt1,
- const intersegment_ptr<T2/*, PT*/> &pt2)
-{ return !(pt1 > pt2); }
-
-/*!intersegment_ptr<T1> > intersegment_ptr<T2, PT>. Never throws.*/
-template<class T1, class T2/*, class PT*/> inline
-bool operator> (const intersegment_ptr<T1/*, PT*/> &pt1,
- const intersegment_ptr<T2/*, PT*/> &pt2)
-{ return (pt2 < pt1); }
-
-/*!intersegment_ptr<T1> >= intersegment_ptr<T2, PT>. Never throws.*/
-template<class T1, class T2/*, class PT*/> inline
-bool operator>= (const intersegment_ptr<T1/*, PT*/> &pt1,
- const intersegment_ptr<T2/*, PT*/> &pt2)
-{ return !(pt1 < pt2); }
-
-/*!operator<< */
-template<class E, class T, class U/*, class PT*/> inline
-std::basic_ostream<E, T> & operator<<
- (std::basic_ostream<E, T> & os, const intersegment_ptr<U/*, PT*/> & p)
-{ return os << p.get(); }
-
-/*!operator>> */
-template<class E, class T, class U/*, class PT*/> inline
-std::basic_istream<E, T> & operator>>
- (std::basic_istream<E, T> & os, intersegment_ptr<U/*, PT*/> & p)
-{ U * tmp; return os >> tmp; p = tmp; }
-
-/*!std::ptrdiff_t + intersegment_ptr.
- The result is another pointer of the same segment */
-template<class T/*, class PT*/> inline
-intersegment_ptr<T/*, PT*/> operator+
- (std::ptrdiff_t diff, const intersegment_ptr<T/*, PT*/>& right)
-{ return right + diff; }
-
-/*!intersegment_ptr - intersegment_ptr.
- This only works with two intersegment_ptr-s that point to the
- same segment*/
-template <class T, class T2/*, class PT*/> inline
-std::ptrdiff_t operator- (const intersegment_ptr<T/*, PT*/> &pt,
- const intersegment_ptr<T2/*, PT*/> &pt2)
-{ return pt._diff(pt2); }
-
-/*! swap specialization */
-template<class T/*, class PT*/> inline
-void swap (boost::interprocess::intersegment_ptr<T/*, PT*/> &pt,
- boost::interprocess::intersegment_ptr<T/*, PT*/> &pt2)
-{ pt.swap(pt2); }
-
-/*!get_pointer() enables boost::mem_fn to recognize intersegment_ptr.
- Never throws.*/
-template<class T/*, class PT*/> inline
-T * get_pointer(boost::interprocess::intersegment_ptr<T/*, PT*/> const & p)
-{ return p.get(); }
-
-/*!Simulation of static_cast between pointers. Never throws.*/
-template<class T, class U/*, class PT*/> inline
-boost::interprocess::intersegment_ptr<T/*, PT*/> static_pointer_cast(const boost::interprocess::intersegment_ptr<U/*, PT*/> &r)
-{ return boost::interprocess::intersegment_ptr<T/*, PT*/>(r, boost::interprocess::detail::static_cast_tag()); }
-
-/*!Simulation of const_cast between pointers. Never throws.*/
-template<class T, class U/*, class PT*/> inline
-boost::interprocess::intersegment_ptr<T/*, PT*/> const_pointer_cast(const boost::interprocess::intersegment_ptr<U/*, PT*/> &r)
-{ return boost::interprocess::intersegment_ptr<T/*, PT*/>(r, boost::interprocess::detail::const_cast_tag()); }
-
-/*!Simulation of dynamic_cast between pointers. Never throws.*/
-template<class T, class U/*, class PT*/> inline
-boost::interprocess::intersegment_ptr<T/*, PT*/> dynamic_pointer_cast(const boost::interprocess::intersegment_ptr<U/*, PT*/> &r)
-{ return boost::interprocess::intersegment_ptr<T/*, PT*/>(r, boost::interprocess::detail::dynamic_cast_tag()); }
-
-/*!Simulation of reinterpret_cast between pointers. Never throws.*/
-template<class T, class U/*, class PT*/> inline
-boost::interprocess::intersegment_ptr<T/*, PT*/> reinterpret_pointer_cast(const boost::interprocess::intersegment_ptr<U/*, PT*/> &r)
-{ return boost::interprocess::intersegment_ptr<T/*, PT*/>(r, boost::interprocess::detail::reinterpret_cast_tag()); }
-
-/*!Trait class to detect if an smart pointer has
- multi-segment addressing capabilities.*/
-template <class T/*, class PT*/>
-struct is_multisegment_ptr
- <boost::interprocess::intersegment_ptr<T/*, PT*/> >
-{
- enum { value = true };
-};
-
-} //namespace interprocess {
-
-
-/*!has_trivial_constructor<> == true_type specialization for optimizations*/
-template <class T/*, class PT*/>
-struct has_trivial_constructor
- < boost::interprocess::intersegment_ptr<T/*, PT*/> >
- : public true_type{};
-
-/*!has_trivial_destructor<> == true_type specialization for optimizations*/
-template <class T/*, class PT*/>
-struct has_trivial_destructor
- < boost::interprocess::intersegment_ptr<T/*, PT*/> >
- : public true_type{};
-
-} //namespace boost {
-
-namespace boost{
-namespace interprocess{
-
-/*!Simulation of cast operators between pointers.*/
-template<class T>
-class cast_to< intersegment_ptr<T> >
-{
- public:
- template<class S>
- static intersegment_ptr<T> using_static_cast(const intersegment_ptr<S> &s)
- { return intersegment_ptr<T>(s, detail::static_cast_tag()); }
-
- template<class S>
- static intersegment_ptr<T> using_reinterpret_cast(const intersegment_ptr<S> &s)
- { return intersegment_ptr<T>(s, detail::reinterpret_cast_tag()); }
-
- template<class S>
- static intersegment_ptr<T> using_const_cast(const intersegment_ptr<S> &s)
- { return intersegment_ptr<T>(s, detail::const_cast_tag()); }
-
- template<class S>
- static intersegment_ptr<T> using_dynamic_cast(const intersegment_ptr<S> &s)
- { return intersegment_ptr<T>(s, detail::dynamic_cast_tag()); }
-};
-
-} //namespace interprocess{
-} //namespace boost{
-
-#include <boost/interprocess/detail/config_end.hpp>
-
-#endif //#ifndef BOOST_INTERSEGMENT_PTR_HPP
-

Deleted: branches/hash/boost/interprocess/managed_multi_shared_memory.hpp
==============================================================================
--- branches/hash/boost/interprocess/managed_multi_shared_memory.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
+++ (empty file)
@@ -1,374 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztañaga 2005-2006. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/interprocess for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef BOOST_INTERPROCESS_MANAGED_MULTI_SHARED_MEMORY_HPP
-#define BOOST_INTERPROCESS_MANAGED_MULTI_SHARED_MEMORY_HPP
-
-#if (defined _MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/detail/workaround.hpp>
-
-#include <boost/interprocess/detail/managed_memory_impl.hpp>
-#include <boost/interprocess/detail/creation_tags.hpp>
-#include <boost/detail/no_exceptions_support.hpp>
-//#include <boost/interprocess/detail/multi_segment_services.hpp>
-#include <boost/interprocess/detail/utilities.hpp>
-#include <boost/interprocess/shared_memory_object.hpp>
-#include <list>
-#include <new>
-#include <boost/interprocess/containers/string.hpp>
-#include <boost/interprocess/streams/vectorstream.hpp>
-#include <memory>
-
-/*!\file
- Describes a named shared memory object allocation user class.
-*/
-
-namespace boost {
-
-namespace interprocess {
-
-/*!A basic shared memory named object creation class. Initializes the
- shared memory segment. Inherits all basic functionality from
- basic_managed_memory_impl<CharType, MemoryAlgorithm, IndexType>*/
-template
- <
- class CharType,
- class MemoryAlgorithm,
- template<class IndexConfig> class IndexType
- >
-class basic_managed_multi_shared_memory
- : public detail::basic_managed_memory_impl
- <CharType, MemoryAlgorithm, IndexType>
-{
-
- typedef basic_managed_multi_shared_memory
- <CharType, MemoryAlgorithm, IndexType> self_t;
- typedef typename self_t::void_pointer void_pointer;
- ////////////////////////////////////////////////////////////////////////
- //
- // Some internal helper structs/functors
- //
- ////////////////////////////////////////////////////////////////////////
- /*!This class defines an operator() that creates a shared memory
- of the requested size. The rest of the parameters are
- passed in the constructor. The class a template parameter
- to be used with create_from_file/create_from_istream functions
- of basic_named_object classes*/
-/*
- class segment_creator
- {
- public:
- segment_creator(shared_memory &shmem,
- const char *mem_name,
- const void *addr)
- : m_shmem(shmem), m_mem_name(mem_name), m_addr(addr){}
-
- void *operator()(std::size_t size)
- {
- if(!m_shmem.create(m_mem_name, size, m_addr))
- return 0;
- return m_shmem.get_address();
- }
- private:
- shared_memory &m_shmem;
- const char *m_mem_name;
- const void *m_addr;
- };
-*/
- class group_services
- {
- public:
- typedef std::pair<void *, std::size_t> result_type;
- typedef basic_managed_multi_shared_memory frontend_t;
- typedef typename
- basic_managed_multi_shared_memory::void_pointer void_pointer;
- group_services(frontend_t *const frontend)
- : mp_frontend(frontend), m_group(0), m_min_segment_size(0){}
-
- virtual std::pair<void *, std::size_t> create_new_segment(std::size_t alloc_size)
- {
- //We should allocate an extra byte so that the
- //[base_addr + alloc_size] byte belongs to this segment
- alloc_size += 1;
-
- //If requested size is less than minimum, update that
- alloc_size = (m_min_segment_size > alloc_size) ?
- m_min_segment_size : alloc_size;
- if(mp_frontend->priv_new_segment(create_open_func::DoCreate,
- alloc_size, 0)){
- shmem_list_t::value_type &p_shm = *mp_frontend->m_shmem_list.rbegin();
- return result_type(p_shm->get_address(), p_shm->get_size()-1);
- }
- return result_type(0, 0);
- }
-
- virtual ~group_services(){}
-
- void set_group(std::size_t group)
- { m_group = group; }
-
- std::size_t get_group() const
- { return m_group; }
-
- void set_min_segment_size(std::size_t min_segment_size)
- { m_min_segment_size = min_segment_size; }
-
- std::size_t get_min_segment_size() const
- { return m_min_segment_size; }
-
- private:
-
- frontend_t * const mp_frontend;
- std::size_t m_group;
- std::size_t m_min_segment_size;
- };
-
- /*!Functor to execute atomically when opening or creating a shared memory
- segment.*/
- struct create_open_func
- {
- enum type_t { DoCreate, DoOpen, DoOpenOrCreate };
- typedef typename
- basic_managed_multi_shared_memory::void_pointer void_pointer;
-
- create_open_func(self_t * const frontend,
- type_t type, std::size_t segment_number)
- : mp_frontend(frontend), m_type(type), m_segment_number(segment_number){}
-
- bool operator()(void *addr, std::size_t size, bool created) const
- {
- if(((m_type == DoOpen) && created) ||
- ((m_type == DoCreate) && !created))
- return false;
- std::size_t group = mp_frontend->m_group_services.get_group();
- bool mapped = false;
- bool impl_done = false;
-
- //Associate this newly created segment as the
- //segment id = 0 of this group
- if((mapped = void_pointer::insert_mapping(group, m_segment_number, addr, size))){
- //Check if this is the master segment
- if(!m_segment_number){
- //Create or open the Interprocess machinery
- if(impl_done = created ?
- mp_frontend->create_impl(addr, size) : mp_frontend->open_impl(addr, size)){
- return true;
- }
- }
- else{
- return true;
- }
- }
-
- //This is the cleanup part
- //---------------
- if(impl_done){
- mp_frontend->close_impl();
- }
- if(mapped){
- bool ret = void_pointer::erase_mapping(group, 0);
- assert(ret);(void)ret;
- }
- return false;
- }
- self_t * const mp_frontend;
- type_t m_type;
- std::size_t m_segment_number;
- };
-
- /*!Functor to execute atomically when closing a shared memory segment.*/
- struct close_func
- {
- typedef typename
- basic_managed_multi_shared_memory::void_pointer void_pointer;
-
- close_func(self_t * const frontend)
- : mp_frontend(frontend){}
-
- void operator()(const mapped_region &region, bool last) const
- {
- if(last) mp_frontend->destroy_impl();
- else mp_frontend->close_impl();
- }
- self_t * const mp_frontend;
- };
-
- typedef detail::basic_managed_memory_impl
- <CharType, MemoryAlgorithm, IndexType> base_t;
-
- //Friend declarations
- friend struct basic_managed_multi_shared_memory::create_open_func;
- friend struct basic_managed_multi_shared_memory::close_func;
- friend class basic_managed_multi_shared_memory::group_services;
-
- typedef std::list<shared_memory*> shmem_list_t;
-
- basic_managed_multi_shared_memory *get_this_pointer()
- { return this; }
-
- public:
-
- basic_managed_multi_shared_memory(detail::create_only_t,
- const char *name,
- std::size_t size)
- : m_group_services(get_this_pointer())
- {
- priv_open_or_create(create_open_func::DoCreate,name, size);
- }
-
- basic_managed_multi_shared_memory(detail::open_or_create_t,
- const char *name,
- std::size_t size)
- : m_group_services(get_this_pointer())
- {
- priv_open_or_create(create_open_func::DoOpenOrCreate, name, size);
- }
-
- basic_managed_multi_shared_memory(detail::open_only_t,
- const char *name)
- : m_group_services(get_this_pointer())
- {
- priv_open_or_create(create_open_func::DoOpen, name, 0);
- }
-
- ~basic_managed_multi_shared_memory()
- { this->priv_close(); }
-
- private:
- bool priv_open_or_create(typename create_open_func::type_t type,
- const char *name,
- std::size_t size)
- {
- if(!m_shmem_list.empty())
- return false;
- std::size_t group = 0;
- BOOST_TRY{
- m_root_name = name;
- //Insert multi segment services and get a group identifier
- group = void_pointer::new_group(static_cast<void*>(&m_group_services));
- m_group_services.set_group(group);
- m_group_services.set_min_segment_size(size);
-
- if(group){
- if(this->priv_new_segment(type, size, 0)){
- return true;
- }
- }
- }
- BOOST_CATCH(const std::bad_alloc&){
- }
- BOOST_CATCH_END
- if(group){
- void_pointer::delete_group(group);
- }
- return false;
- }
-
- bool priv_new_segment(typename create_open_func::type_t type,
- std::size_t size,
- const void *addr)
- {
- BOOST_TRY{
- //Get the number of groups of this multi_segment group
- std::size_t segment_id = m_shmem_list.size();
- //Format the name of the shared memory: append segment number.
- boost::interprocess::basic_ovectorstream<boost::interprocess::string> formatter;
- formatter.seekp(std::ios::beg);
- //Pre-reserve string size
- std::size_t str_size = m_root_name.length()+10;
- if(formatter.vector().size() < str_size){
- //This can throw.
- formatter.reserve(str_size);
- }
- //Format segment's name
- formatter << m_root_name
- << static_cast<unsigned int>(segment_id) << std::ends;
- //This functor will be executed when constructing
- create_open_func func(this, type, segment_id);
- const char *name = formatter.vector().c_str();
- //This can throw.
- std::auto_ptr<shared_memory> shm;
-
- switch(type){
- case create_open_func::DoCreate:
- shm.reset(new shared_memory(create_only, name, size
- ,read_write, addr, func));
- break;
-
- case create_open_func::DoOpen:
- shm.reset(new shared_memory(open_only, name
- ,read_write, addr, func));
- break;
-
- case create_open_func::DoOpenOrCreate:
- shm.reset(new shared_memory( boost::interprocess::open_or_create
- , name, size, read_write
- , addr, func));
- break;
-
- default:
- return false;
- break;
- }
- //This can throw.
- m_shmem_list.push_back(shm.get());
- //Anti-exception rollback
- detail::value_eraser<shmem_list_t>
- value_eraser(m_shmem_list, --m_shmem_list.end());
- shm.release();
- value_eraser.release();
- return true;
- }
- BOOST_CATCH(const std::bad_alloc&){
- }
- BOOST_CATCH_END
- return false;
- }
-
- /*!Frees resources. Never throws.*/
- void priv_close()
- {
- if(!m_shmem_list.empty()){
- bool ret;
- //Obtain group identifier
- std::size_t group = m_group_services.get_group();
- //Erase main segment and its resources
- shmem_list_t::iterator itbeg = m_shmem_list.begin(),
- itend = m_shmem_list.end(),
- it = itbeg;
- //(*itbeg)->close_with_func(close_func(this));
- //Delete group. All mappings are erased too.
- ret = void_pointer::delete_group(group);
- assert(ret);
- //Now destroy all shared_memory segments so they
- //are unmapped from the process
- for(it = itbeg; it != itend; ++it) delete *it;
- m_shmem_list.clear();
- }
- }
-
- private:
- shmem_list_t m_shmem_list;
- group_services m_group_services;
- std::string m_root_name;
-};
-
-} //namespace interprocess {
-
-} //namespace boost {
-
-#include <boost/interprocess/detail/config_end.hpp>
-
-#endif //BOOST_INTERPROCESS_MANAGED_MULTI_SHARED_MEMORY_HPP
-

Deleted: branches/hash/boost/interprocess/mem_algo/multi_simple_seq_fit.hpp
==============================================================================
--- branches/hash/boost/interprocess/mem_algo/multi_simple_seq_fit.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
+++ (empty file)
@@ -1,61 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztañaga 2005-2006. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/interprocess for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef BOOST_INTERPROCESS_MULTI_SIMPLE_SEQ_FIT_HPP
-#define BOOST_INTERPROCESS_MULTI_SIMPLE_SEQ_FIT_HPP
-
-#if (defined _MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif
-
-#include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/detail/workaround.hpp>
-
-#include <boost/interprocess/interprocess_fwd.hpp>
-#include <boost/interprocess/mem_algo/detail/simple_seq_fit_impl.hpp>
-#include <boost/interprocess/intersegment_ptr.hpp>
-
-/*!\file
- Describes sequential fit algorithm used to allocate objects in shared memory.
-*/
-
-namespace boost {
-
-namespace interprocess {
-
-/*!This class implements the simple sequential fit algorithm with a simply
- linked list of free buffers.*/
-template<class MutexFamily, class VoidPtr>
-class multi_simple_seq_fit
- : public detail::simple_seq_fit_impl<MutexFamily, VoidPtr>
-{
- typedef detail::simple_seq_fit_impl<MutexFamily, VoidPtr> base_t;
- public:
- /*!Constructor. "size" is the total size of the managed memory segment,
- "extra_hdr_bytes" indicates the extra bytes beginning in the sizeof(multi_simple_seq_fit)
- offset that the allocator should not use at all.*/
- multi_simple_seq_fit (std::size_t size, std::size_t extra_hdr_bytes)
- : base_t(size, extra_hdr_bytes){}
-
- /*!Allocates bytes from existing segments. If there is no memory, it uses
- the growing functor associated with the group to allocate a new segment.
- If this fails, returns 0.*/
- void* allocate (std::size_t nbytes)
- { return base_t::multi_allocate(nbytes); }
-};
-
-} //namespace interprocess {
-
-} //namespace boost {
-
-#include <boost/interprocess/detail/config_end.hpp>
-
-#endif //#ifndef BOOST_INTERPROCESS_MULTI_SIMPLE_SEQ_FIT_HPP
-

Deleted: branches/hash/boost/interprocess/smart_ptr/detail/sp_counted_base_pt.hpp
==============================================================================
--- branches/hash/boost/interprocess/smart_ptr/detail/sp_counted_base_pt.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
+++ (empty file)
@@ -1,135 +0,0 @@
-#ifndef BOOST_INTERPROCESS_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED
-#define BOOST_INTERPROCESS_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-// This file is the adaptation for shared memory memory mapped
-// files of boost/detail/sp_counted_base_pt.hpp
-//
-//
-// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-// Copyright 2004-2005 Peter Dimov
-// Copyright 2006 Ion Gaztañaga
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/detail/workaround.hpp>
-
-#include <typeinfo>
-#include <boost/interprocess/sync/posix/pthread_helpers.hpp>
-
-namespace boost{
-
-namespace interprocess{
-
-namespace detail{
-
-class sp_counted_base
-{
- private:
-
- sp_counted_base( sp_counted_base const & );
- sp_counted_base & operator= ( sp_counted_base const & );
-
- long use_count_; // #shared
- long weak_count_; // #weak + (#shared != 0)
-
- mutable pthread_mutex_t m_mut;
-
- public:
-
- sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
- {
- detail::mutexattr_wrapper mut_attr;
- detail::mutex_initializer mut(m_mut, mut_attr);
- mut.release();
- }
-
- ~sp_counted_base() // nothrow
- {
- int res = pthread_mutex_destroy(&m_mut);
- assert(res == 0);(void)res;
- }
-
- // dispose() is called when use_count_ drops to zero, to release
- // the resources managed by *this.
-/*
- virtual void dispose() = 0; // nothrow
-
- // destroy() is called when weak_count_ drops to zero.
-
- virtual void destroy() // nothrow
- {
- delete this;
- }
-
- virtual void * get_deleter( std::type_info const & ti ) = 0;
-*/
- void add_ref_copy()
- {
- pthread_mutex_lock( &m_mut );
- ++use_count_;
- pthread_mutex_unlock( &m_mut );
- }
-
- bool add_ref_lock() // true on success
- {
- pthread_mutex_lock( &m_mut );
- bool r = use_count_ == 0? false: ( ++use_count_, true );
- pthread_mutex_unlock( &m_mut );
- return r;
- }
-
- bool ref_release() // nothrow
- {
- pthread_mutex_lock( &m_mut );
- long new_use_count = --use_count_;
- pthread_mutex_unlock( &m_mut );
-
- return new_use_count == 0;
- }
-
- void weak_add_ref() // nothrow
- {
- pthread_mutex_lock( &m_mut );
- ++weak_count_;
- pthread_mutex_unlock( &m_mut );
- }
-
- bool weak_release() // nothrow
- {
- pthread_mutex_lock( &m_mut );
- long new_weak_count = --weak_count_;
- pthread_mutex_unlock( &m_mut );
-
- return new_weak_count == 0;
- }
-
- long use_count() const // nothrow
- {
- pthread_mutex_lock( &m_mut );
- long r = use_count_;
- pthread_mutex_unlock( &m_mut );
-
- return r;
- }
-};
-
-} // namespace detail
-
-} // namespace interprocess
-
-} // namespace boost
-
-#include <boost/interprocess/detail/config_end.hpp>
-
-#endif // #ifndef BOOST_INTERPROCESS_DETAIL_SP_COUNTED_BASE_PT_HPP_INCLUDED

Deleted: branches/hash/boost/interprocess/smart_ptr/detail/sp_counted_base_w32.hpp
==============================================================================
--- branches/hash/boost/interprocess/smart_ptr/detail/sp_counted_base_w32.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
+++ (empty file)
@@ -1,119 +0,0 @@
-#ifndef BOOST_INTERPROCESS_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED
-#define BOOST_INTERPROCESS_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED
-
-// MS compatible compilers support #pragma once
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-//
-// This file is the adaptation for shared memory memory mapped
-// files of boost/detail/sp_counted_base_w32.hpp
-//
-//
-// Copyright (c) 2001, 2002, 2003 Peter Dimov and Multi Media Ltd.
-// Copyright 2004-2005 Peter Dimov
-// Copyright 2006 Ion Gaztañaga
-//
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-//
-//
-// Lock-free algorithm by Alexander Terekhov
-//
-// Thanks to Ben Hitchings for the #weak + (#shared != 0)
-// formulation
-//
-
-#include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/detail/workaround.hpp>
-
-#include <boost/interprocess/detail/win32_api.hpp>
-#include <typeinfo>
-
-namespace boost {
-
-namespace interprocess {
-
-namespace detail {
-
-class sp_counted_base
-{
-private:
-
- sp_counted_base( sp_counted_base const & );
- sp_counted_base & operator= ( sp_counted_base const & );
-
- long use_count_; // #shared
- long weak_count_; // #weak + (#shared != 0)
-
-public:
-
- sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
- {}
-
- ~sp_counted_base() // nothrow
- {}
-/*
- // dispose() is called when use_count_ drops to zero, to release
- // the resources managed by *this.
-
- virtual void dispose() = 0; // nothrow
-
- // destroy() is called when weak_count_ drops to zero.
-
- virtual void destroy() // nothrow
- {
- delete this;
- }
-
- virtual void * get_deleter( std::type_info const & ti ) = 0;
-*/
- void add_ref_copy()
- {
- winapi::interlocked_increment( &use_count_ );
- }
-
- bool add_ref_lock() // true on success
- {
- for( ;; )
- {
- long tmp = static_cast< long const volatile& >( use_count_ );
- if( tmp == 0 ) return false;
- if( winapi::interlocked_compare_exchange( &use_count_, tmp + 1, tmp ) == tmp ) return true;
- }
- }
-
- bool ref_release() // nothrow
- { return winapi::interlocked_decrement( &use_count_ ) == 0; }
-
-/*
- void release() // nothrow
- {
- if(ref_release()){
- //dispose();
- weak_release();
- }
- }
-*/
- void weak_add_ref() // nothrow
- { winapi::interlocked_increment( &weak_count_ ); }
-
- bool weak_release() // nothrow
- { return winapi::interlocked_decrement( &weak_count_ ) == 0; }
-
- long use_count() const // nothrow
- { return static_cast<long const volatile &>( use_count_ ); }
-};
-
-} // namespace detail
-
-} // namespace interprocess
-
-} // namespace boost
-
-#include <boost/interprocess/detail/config_end.hpp>
-
-#endif // #ifndef BOOST_INTERPROCESS_DETAIL_SP_COUNTED_BASE_W32_HPP_INCLUDED

Deleted: branches/hash/boost/interprocess/smart_ptr/segment_deleter.hpp
==============================================================================
--- branches/hash/boost/interprocess/smart_ptr/segment_deleter.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
+++ (empty file)
@@ -1,59 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gaztanaga 2005-2007. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/interprocess for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-
-#ifndef BOOST_INTERPROCESS_SMART_PTR_SEGMENT_DELETER_HPP
-#define BOOST_INTERPROCESS_SMART_PTR_SEGMENT_DELETER_HPP
-
-#if (defined _MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-# pragma warning (disable : 4503)
-#endif
-
-#include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/detail/workaround.hpp>
-#include <boost/interprocess/detail/utilities.hpp>
-
-//!\file
-//!Describes a deleter for smart pointers that deletes the
-//!object using the segment manager
-
-namespace boost {
-namespace interprocess {
-
-template < class SegmentManager
- , class VoidPointer = typename SegmentManager::void_pointer>
-struct segment_deleter
-{
- typedef typename detail::pointer_to_other
- <VoidPointer, SegmentManager>::type SegmentManagerPtr;
-
- segment_deleter(SegmentManagerPtr mngr)
- : m_mngr(mngr)
- {}
-
- template<class Ptr>
- void operator() (const Ptr &ptr) const
- {
- m_mngr->destroy_ptr(detail::get_pointer(ptr));
- }
-
- /// @cond
- private:
- SegmentManagerPtr m_mngr;
- /// @endcond
-};
-
-
-} //namespace interprocess {
-} //namespace boost {
-
-#include <boost/interprocess/detail/config_end.hpp>
-
-#endif //#ifndef BOOST_INTERPROCESS_SMART_PTR_SEGMENT_DELETER_HPP

Modified: branches/hash/boost/shared_array.hpp
==============================================================================
--- branches/hash/boost/shared_array.hpp (original)
+++ branches/hash/boost/shared_array.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -103,7 +103,23 @@
         return px != 0;
     }
 
-#elif defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003))
+#elif defined( _MANAGED )
+
+ static void unspecified_bool( this_type*** )
+ {
+ }
+
+ typedef void (*unspecified_bool_type)( this_type*** );
+
+ operator unspecified_bool_type() const // never throws
+ {
+ return px == 0? 0: unspecified_bool;
+ }
+
+#elif \
+ ( defined(__MWERKS__) && BOOST_WORKAROUND(__MWERKS__, < 0x3200) ) || \
+ ( defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ < 304) )
+
     typedef T * (this_type::*unspecified_bool_type)() const;
     
     operator unspecified_bool_type() const // never throws

Modified: branches/hash/boost/shared_ptr.hpp
==============================================================================
--- branches/hash/boost/shared_ptr.hpp (original)
+++ branches/hash/boost/shared_ptr.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -453,9 +453,9 @@
         return pn < rhs.pn;
     }
 
- void * _internal_get_deleter(std::type_info const & ti) const
+ void * _internal_get_deleter( detail::sp_typeinfo const & ti ) const
     {
- return pn.get_deleter(ti);
+ return pn.get_deleter( ti );
     }
 
 // Tasteless as this may seem, making all members public allows member templates
@@ -594,7 +594,7 @@
 
 template<class D, class T> D * get_deleter(shared_ptr<T> const & p)
 {
- void const * q = p._internal_get_deleter(typeid(D));
+ void const * q = p._internal_get_deleter(BOOST_SP_TYPEID(D));
     return const_cast<D *>(static_cast<D const *>(q));
 }
 
@@ -602,7 +602,7 @@
 
 template<class D, class T> D * get_deleter(shared_ptr<T> const & p)
 {
- return static_cast<D *>(p._internal_get_deleter(typeid(D)));
+ return static_cast<D *>(p._internal_get_deleter(BOOST_SP_TYPEID(D)));
 }
 
 #endif

Modified: branches/hash/libs/config/doc/html/boost_config/acknowledgements.html
==============================================================================
--- branches/hash/libs/config/doc/html/boost_config/acknowledgements.html (original)
+++ branches/hash/libs/config/doc/html/boost_config/acknowledgements.html 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -9,14 +9,14 @@
 <link rel="prev" href="rationale.html" title="Rationale">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
+<table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
 <td align="center">People</td>
 <td align="center">FAQ</td>
 <td align="center">More</td>
-</table>
+</tr></table>
 <hr>
 <div class="spirit-nav">
 <a accesskey="p" href="rationale.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a>

Modified: branches/hash/libs/config/doc/html/boost_config/boost_macro_reference.html
==============================================================================
--- branches/hash/libs/config/doc/html/boost_config/boost_macro_reference.html (original)
+++ branches/hash/libs/config/doc/html/boost_config/boost_macro_reference.html 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -10,14 +10,14 @@
 <link rel="next" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
+<table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
 <td align="center">People</td>
 <td align="center">FAQ</td>
 <td align="center">More</td>
-</table>
+</tr></table>
 <hr>
 <div class="spirit-nav">
 <a accesskey="p" href="../index.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
@@ -421,6 +421,41 @@
 <tr>
 <td>
               <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_IOSFWD</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ std lib
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library lacks <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">iosfwd</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_IOSTREAM</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ std lib
+ </p>
+ </td>
+<td>
+ <p>
+ The standard library lacks <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span></code>,
+ <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">istream</span><span class="special">&gt;</span></code> or <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">ostream</span><span class="special">&gt;</span></code>.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
                 <code class="computeroutput"><span class="identifier">BOOST_NO_IS_ABSTRACT</span></code>
               </p>
               </td>
@@ -832,6 +867,24 @@
 <tr>
 <td>
               <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_STD_TYPEINFO</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Standard library
+ </p>
+ </td>
+<td>
+ <p>
+ The &lt;typeinfo&gt; header declares <code class="computeroutput"><span class="identifier">type_info</span></code>
+ in the global namespace instead of namespace std.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
                 <code class="computeroutput"><span class="identifier">BOOST_NO_STD_USE_FACET</span></code>
               </p>
               </td>
@@ -994,6 +1047,23 @@
 <tr>
 <td>
               <p>
+ <code class="computeroutput"><span class="identifier">BOOST_NO_TYPEID</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ Compiler
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler does not support the typeid operator at all.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
                 <code class="computeroutput"><span class="identifier">BOOST_NO_UNREACHABLE_RETURN_DETECTION</span></code>
               </p>
               </td>
@@ -2028,6 +2098,18 @@
 <tr>
 <td>
               <p>
+ <code class="computeroutput"><span class="identifier">BOOST_HAS_DECLTYPE</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ The compiler supports decltype.
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
                 <code class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></code>
               </p>
               </td>
@@ -2069,9 +2151,7 @@
               </td>
 <td>
               <p>
- The compiler supports variadic templates. Note: variadic templates
- have been proposed for C++0x, but have not yet been approved for
- inclusion in the language.
+ The compiler supports variadic templates.
               </p>
               </td>
 </tr>
@@ -2717,19 +2797,19 @@
 <p class="title"><b></b></p>
 <dl>
 <dt><span class="term"><code class="computeroutput"><span class="identifier">BOOST_LIB_NAME</span></code></span></dt>
-<dd>
- Required: An identifier containing the basename of the library, for example
- 'boost_regex'.
- </dd>
+<dd><p>
+ Required: An identifier containing the basename of the library, for
+ example 'boost_regex'.
+ </p></dd>
 <dt><span class="term"><code class="computeroutput"><span class="identifier">BOOST_DYN_LINK</span></code></span></dt>
-<dd>
- Optional: when set link to dll rather than static library.
- </dd>
+<dd><p>
+ Optional: when set link to dll rather than static library.
+ </p></dd>
 <dt><span class="term"><code class="computeroutput"><span class="identifier">BOOST_LIB_DIAGNOSTIC</span></code></span></dt>
-<dd>
- Optional: when set the header will print out the name of the library
- selected (useful for debugging).
- </dd>
+<dd><p>
+ Optional: when set the header will print out the name of the library
+ selected (useful for debugging).
+ </p></dd>
 </dl>
 </div>
 <p>

Modified: branches/hash/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html
==============================================================================
--- branches/hash/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html (original)
+++ branches/hash/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -10,14 +10,14 @@
 <link rel="next" href="rationale.html" title="Rationale">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
+<table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
 <td align="center">People</td>
 <td align="center">FAQ</td>
 <td align="center">More</td>
-</table>
+</tr></table>
 <hr>
 <div class="spirit-nav">
 <a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>

Modified: branches/hash/libs/config/doc/html/boost_config/rationale.html
==============================================================================
--- branches/hash/libs/config/doc/html/boost_config/rationale.html (original)
+++ branches/hash/libs/config/doc/html/boost_config/rationale.html 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -10,14 +10,14 @@
 <link rel="next" href="acknowledgements.html" title="Acknowledgements">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
+<table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
 <td align="center">People</td>
 <td align="center">FAQ</td>
 <td align="center">More</td>
-</table>
+</tr></table>
 <hr>
 <div class="spirit-nav">
 <a accesskey="p" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>

Modified: branches/hash/libs/config/doc/html/index.html
==============================================================================
--- branches/hash/libs/config/doc/html/index.html (original)
+++ branches/hash/libs/config/doc/html/index.html 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -8,14 +8,14 @@
 <link rel="next" href="boost_config/boost_macro_reference.html" title="Boost Macro Reference">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%">
+<table cellpadding="2" width="100%"><tr>
 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
 <td align="center">Home</td>
 <td align="center">Libraries</td>
 <td align="center">People</td>
 <td align="center">FAQ</td>
 <td align="center">More</td>
-</table>
+</tr></table>
 <hr>
 <div class="spirit-nav"><a accesskey="n" href="boost_config/boost_macro_reference.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
 <div class="article" lang="en">
@@ -28,7 +28,7 @@
 </h3></div></div></div>
 <div><p class="copyright">Copyright © 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock</p></div>
 <div><div class="legalnotice">
-<a name="id430912"></a><p>
+<a name="id499288"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -957,7 +957,7 @@
   </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><small><p>Last revised: June 08, 2007 at 08:33:58 GMT</p></small></td>
+<td align="left"><p><small>Last revised: August 25, 2007 at 12:03:01 GMT</small></p></td>
 <td align="right"><small></small></td>
 </tr></table>
 <hr>

Modified: branches/hash/libs/config/doc/macro_reference.qbk
==============================================================================
--- branches/hash/libs/config/doc/macro_reference.qbk (original)
+++ branches/hash/libs/config/doc/macro_reference.qbk 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -120,6 +120,12 @@
 to explicitly specialize a template on `wchar_t` if there is already a
 specialization for other integer types.
 ]]
+[[`BOOST_NO_IOSFWD`][std lib][
+The standard library lacks `<iosfwd>`.
+]]
+[[`BOOST_NO_IOSTREAM`][std lib][
+The standard library lacks `<iostream>`, `<istream>` or `<ostream>`.
+]]
 [[`BOOST_NO_IS_ABSTRACT`][Compiler][
 The C++ compiler does not support SFINAE with abstract types, this is covered
 by __CORE_LANGUAGE_DR337__, but is not part of the current standard. Fortunately
@@ -210,6 +216,9 @@
 [[`BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN`][Standard library][
 Defined if the standard library's output iterators are not assignable.
 ]]
+[[`BOOST_NO_STD_TYPEINFO`][Standard library][
+The <typeinfo> header declares `type_info` in the global namespace instead of namespace std.
+]]
 [[`BOOST_NO_STD_USE_FACET`][Standard library][
 The standard library lacks a conforming `std::use_facet`.
 ]]
@@ -244,6 +253,9 @@
 [[`BOOST_NO_TEMPLATE_TEMPLATES`][Compiler][
 The compiler does not support template template parameters.
 ]]
+[[`BOOST_NO_TYPEID`][Compiler][
+The compiler does not support the typeid operator at all.
+]]
 [[`BOOST_NO_UNREACHABLE_RETURN_DETECTION`][Compiler][
 If a return is unreachable, then no return statement should be required,
 however some compilers insist on it, while other issue a bunch of warnings

Modified: branches/hash/libs/config/test/Jamfile.v2
==============================================================================
--- branches/hash/libs/config/test/Jamfile.v2 (original)
+++ branches/hash/libs/config/test/Jamfile.v2 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -1,7 +1,7 @@
 #
 # Regression test Jamfile for boost configuration setup.
 # *** DO NOT EDIT THIS FILE BY HAND ***
-# This file was automatically generated on Mon Jan 01 12:39:24 2007
+# This file was automatically generated on Sat Aug 25 12:32:22 2007
 # by libs/config/tools/generate.cpp
 # Copyright John Maddock.
 # Use, modification and distribution are subject to the
@@ -17,7 +17,7 @@
 run config_info.cpp ;
 run math_info.cpp : : : <toolset>borland:<runtime-link>static ;
 run config_test.cpp ;
-run limits_test.cpp ../../test/build//boost_test_exec_monitor ;
+run limits_test.cpp ;
 run abi/abi_test.cpp abi/main.cpp ;
 
 test-suite "BOOST_HAS_TWO_ARG_USE_FACET" :
@@ -29,6 +29,9 @@
 test-suite "BOOST_HAS_CLOCK_GETTIME" :
 [ run has_clock_gettime_pass.cpp ]
 [ compile-fail has_clock_gettime_fail.cpp ] ;
+test-suite "BOOST_HAS_CONCEPTS" :
+[ run has_concepts_pass.cpp ]
+[ compile-fail has_concepts_fail.cpp ] ;
 test-suite "BOOST_HAS_DIRENT_H" :
 [ run has_dirent_h_pass.cpp ]
 [ compile-fail has_dirent_h_fail.cpp ] ;
@@ -80,6 +83,9 @@
 test-suite "BOOST_HAS_PTHREAD_YIELD" :
 [ run has_pthread_yield_pass.cpp ]
 [ compile-fail has_pthread_yield_fail.cpp ] ;
+test-suite "BOOST_HAS_RVALUE_REFS" :
+[ run has_rvalue_refs_pass.cpp ]
+[ compile-fail has_rvalue_refs_fail.cpp ] ;
 test-suite "BOOST_HAS_SCHED_YIELD" :
 [ run has_sched_yield_pass.cpp ]
 [ compile-fail has_sched_yield_fail.cpp ] ;
@@ -92,6 +98,9 @@
 test-suite "BOOST_HAS_SLIST" :
 [ run has_slist_pass.cpp ]
 [ compile-fail has_slist_fail.cpp ] ;
+test-suite "BOOST_HAS_STATIC_ASSERT" :
+[ run has_static_assert_pass.cpp ]
+[ compile-fail has_static_assert_fail.cpp ] ;
 test-suite "BOOST_HAS_STDINT_H" :
 [ run has_stdint_h_pass.cpp ]
 [ compile-fail has_stdint_h_fail.cpp ] ;
@@ -152,6 +161,9 @@
 test-suite "BOOST_HAS_UNISTD_H" :
 [ run has_unistd_h_pass.cpp ]
 [ compile-fail has_unistd_h_fail.cpp ] ;
+test-suite "BOOST_HAS_VARIADIC_TMPL" :
+[ run has_variadic_tmpl_pass.cpp ]
+[ compile-fail has_variadic_tmpl_fail.cpp ] ;
 test-suite "BOOST_MSVC6_MEMBER_TEMPLATES" :
 [ run has_vc6_mem_templ_pass.cpp ]
 [ compile-fail has_vc6_mem_templ_fail.cpp ] ;
@@ -221,6 +233,12 @@
 test-suite "BOOST_NO_INTEGRAL_INT64_T" :
 [ run no_integral_int64_t_pass.cpp ]
 [ compile-fail no_integral_int64_t_fail.cpp ] ;
+test-suite "BOOST_NO_IOSFWD" :
+[ run no_iosfwd_pass.cpp ]
+[ compile-fail no_iosfwd_fail.cpp ] ;
+test-suite "BOOST_NO_IOSTREAM" :
+[ run no_iostream_pass.cpp ]
+[ compile-fail no_iostream_fail.cpp ] ;
 test-suite "BOOST_NO_IS_ABSTRACT" :
 [ run no_is_abstract_pass.cpp ]
 [ compile-fail no_is_abstract_fail.cpp ] ;
@@ -299,6 +317,9 @@
 test-suite "BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN" :
 [ run no_std_oi_assign_pass.cpp ]
 [ compile-fail no_std_oi_assign_fail.cpp ] ;
+test-suite "BOOST_NO_STD_TYPEINFO" :
+[ run no_std_typeinfo_pass.cpp ]
+[ compile-fail no_std_typeinfo_fail.cpp ] ;
 test-suite "BOOST_NO_STD_USE_FACET" :
 [ run no_std_use_facet_pass.cpp ]
 [ compile-fail no_std_use_facet_fail.cpp ] ;
@@ -317,6 +338,9 @@
 test-suite "BOOST_NO_TWO_PHASE_NAME_LOOKUP" :
 [ run no_two_phase_lookup_pass.cpp ]
 [ compile-fail no_two_phase_lookup_fail.cpp ] ;
+test-suite "BOOST_NO_TYPEID" :
+[ run no_typeid_pass.cpp ]
+[ compile-fail no_typeid_fail.cpp ] ;
 test-suite "BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL" :
 [ run no_using_breaks_adl_pass.cpp ]
 [ compile-fail no_using_breaks_adl_fail.cpp ] ;
@@ -333,5 +357,3 @@
 [ run no_wchar_t_pass.cpp ]
 [ compile-fail no_wchar_t_fail.cpp ] ;
 
-
-

Modified: branches/hash/libs/config/test/config_info.cpp
==============================================================================
--- branches/hash/libs/config/test/config_info.cpp (original)
+++ branches/hash/libs/config/test/config_info.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -899,6 +899,7 @@
    PRINT_MACRO(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL);
    PRINT_MACRO(BOOST_HAS_BETHREADS);
    PRINT_MACRO(BOOST_HAS_CLOCK_GETTIME);
+ PRINT_MACRO(BOOST_HAS_CONCEPTS);
    PRINT_MACRO(BOOST_HAS_DIRENT_H);
    PRINT_MACRO(BOOST_HAS_EXPM1);
    PRINT_MACRO(BOOST_HAS_FTIME);
@@ -916,10 +917,12 @@
    PRINT_MACRO(BOOST_HAS_PTHREAD_DELAY_NP);
    PRINT_MACRO(BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE);
    PRINT_MACRO(BOOST_HAS_PTHREAD_YIELD);
+ PRINT_MACRO(BOOST_HAS_RVALUE_REFS);
    PRINT_MACRO(BOOST_HAS_SCHED_YIELD);
    PRINT_MACRO(BOOST_HAS_SGI_TYPE_TRAITS);
    PRINT_MACRO(BOOST_HAS_SIGACTION);
    PRINT_MACRO(BOOST_HAS_SLIST);
+ PRINT_MACRO(BOOST_HAS_STATIC_ASSERT);
    PRINT_MACRO(BOOST_HAS_STDINT_H);
    PRINT_MACRO(BOOST_HAS_STLP_USE_FACET);
    PRINT_MACRO(BOOST_HAS_TR1_ARRAY);
@@ -941,6 +944,7 @@
    PRINT_MACRO(BOOST_HAS_TR1_UTILITY);
    PRINT_MACRO(BOOST_HAS_TWO_ARG_USE_FACET);
    PRINT_MACRO(BOOST_HAS_UNISTD_H);
+ PRINT_MACRO(BOOST_HAS_VARIADIC_TMPL);
    PRINT_MACRO(BOOST_HAS_WINTHREADS);
    PRINT_MACRO(BOOST_MSVC6_MEMBER_TEMPLATES);
    PRINT_MACRO(BOOST_MSVC_STD_ITERATOR);
@@ -962,6 +966,8 @@
    PRINT_MACRO(BOOST_NO_INCLASS_MEMBER_INITIALIZATION);
    PRINT_MACRO(BOOST_NO_INTEGRAL_INT64_T);
    PRINT_MACRO(BOOST_NO_INTRINSIC_WCHAR_T);
+ PRINT_MACRO(BOOST_NO_IOSFWD);
+ PRINT_MACRO(BOOST_NO_IOSTREAM);
    PRINT_MACRO(BOOST_NO_IS_ABSTRACT);
    PRINT_MACRO(BOOST_NO_LIMITS);
    PRINT_MACRO(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS);
@@ -985,6 +991,7 @@
    PRINT_MACRO(BOOST_NO_STD_MESSAGES);
    PRINT_MACRO(BOOST_NO_STD_MIN_MAX);
    PRINT_MACRO(BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN);
+ PRINT_MACRO(BOOST_NO_STD_TYPEINFO);
    PRINT_MACRO(BOOST_NO_STD_USE_FACET);
    PRINT_MACRO(BOOST_NO_STD_WSTREAMBUF);
    PRINT_MACRO(BOOST_NO_STD_WSTRING);
@@ -994,6 +1001,7 @@
    PRINT_MACRO(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION);
    PRINT_MACRO(BOOST_NO_TEMPLATE_TEMPLATES);
    PRINT_MACRO(BOOST_NO_TWO_PHASE_NAME_LOOKUP);
+ PRINT_MACRO(BOOST_NO_TYPEID);
    PRINT_MACRO(BOOST_NO_UNREACHABLE_RETURN_DETECTION);
    PRINT_MACRO(BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE);
    PRINT_MACRO(BOOST_NO_USING_TEMPLATE);
@@ -1003,6 +1011,7 @@
 
 
 
+
    // END GENERATED BLOCK
 
    PRINT_MACRO(BOOST_INTEL);

Modified: branches/hash/libs/config/test/config_test.cpp
==============================================================================
--- branches/hash/libs/config/test/config_test.cpp (original)
+++ branches/hash/libs/config/test/config_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -1,4 +1,4 @@
-// This file was automatically generated on Mon Jan 01 12:39:24 2007
+// This file was automatically generated on Sat Aug 25 12:32:22 2007
 // by libs/config/tools/generate.cpp
 // Copyright John Maddock 2002-4.
 // Use, modification and distribution are subject to the
@@ -119,6 +119,16 @@
 #else
 namespace boost_no_integral_int64_t = empty_boost;
 #endif
+#ifndef BOOST_NO_IOSFWD
+#include "boost_no_iosfwd.ipp"
+#else
+namespace boost_no_iosfwd = empty_boost;
+#endif
+#ifndef BOOST_NO_IOSTREAM
+#include "boost_no_iostream.ipp"
+#else
+namespace boost_no_iostream = empty_boost;
+#endif
 #ifndef BOOST_NO_IS_ABSTRACT
 #include "boost_no_is_abstract.ipp"
 #else
@@ -249,6 +259,11 @@
 #else
 namespace boost_no_std_output_iterator_assign = empty_boost;
 #endif
+#ifndef BOOST_NO_STD_TYPEINFO
+#include "boost_no_std_typeinfo.ipp"
+#else
+namespace boost_no_std_typeinfo = empty_boost;
+#endif
 #ifndef BOOST_NO_STD_USE_FACET
 #include "boost_no_std_use_facet.ipp"
 #else
@@ -279,6 +294,11 @@
 #else
 namespace boost_no_two_phase_name_lookup = empty_boost;
 #endif
+#ifndef BOOST_NO_TYPEID
+#include "boost_no_typeid.ipp"
+#else
+namespace boost_no_typeid = empty_boost;
+#endif
 #ifndef BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
 #include "boost_no_using_breaks_adl.ipp"
 #else
@@ -320,6 +340,11 @@
 #else
 namespace boost_has_clock_gettime = empty_boost;
 #endif
+#ifdef BOOST_HAS_CONCEPTS
+#include "boost_has_concepts.ipp"
+#else
+namespace boost_has_concepts = empty_boost;
+#endif
 #ifdef BOOST_HAS_DIRENT_H
 #include "boost_has_dirent_h.ipp"
 #else
@@ -405,6 +430,11 @@
 #else
 namespace boost_has_pthread_yield = empty_boost;
 #endif
+#ifdef BOOST_HAS_RVALUE_REFS
+#include "boost_has_rvalue_refs.ipp"
+#else
+namespace boost_has_rvalue_refs = empty_boost;
+#endif
 #ifdef BOOST_HAS_SCHED_YIELD
 #include "boost_has_sched_yield.ipp"
 #else
@@ -425,6 +455,11 @@
 #else
 namespace boost_has_slist = empty_boost;
 #endif
+#ifdef BOOST_HAS_STATIC_ASSERT
+#include "boost_has_static_assert.ipp"
+#else
+namespace boost_has_static_assert = empty_boost;
+#endif
 #ifdef BOOST_HAS_STDINT_H
 #include "boost_has_stdint_h.ipp"
 #else
@@ -525,6 +560,11 @@
 #else
 namespace boost_has_unistd_h = empty_boost;
 #endif
+#ifdef BOOST_HAS_VARIADIC_TMPL
+#include "boost_has_variadic_tmpl.ipp"
+#else
+namespace boost_has_variadic_tmpl = empty_boost;
+#endif
 #ifdef BOOST_MSVC6_MEMBER_TEMPLATES
 #include "boost_has_vc6_mem_templ.ipp"
 #else
@@ -558,6 +598,11 @@
       std::cerr << "Failed test for BOOST_HAS_CLOCK_GETTIME at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
+ if(0 != boost_has_concepts::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_CONCEPTS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
    if(0 != boost_has_dirent_h::test())
    {
       std::cerr << "Failed test for BOOST_HAS_DIRENT_H at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -643,6 +688,11 @@
       std::cerr << "Failed test for BOOST_HAS_PTHREAD_YIELD at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
+ if(0 != boost_has_rvalue_refs::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_RVALUE_REFS at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
    if(0 != boost_has_sched_yield::test())
    {
       std::cerr << "Failed test for BOOST_HAS_SCHED_YIELD at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -663,6 +713,11 @@
       std::cerr << "Failed test for BOOST_HAS_SLIST at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
+ if(0 != boost_has_static_assert::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_STATIC_ASSERT at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
    if(0 != boost_has_stdint_h::test())
    {
       std::cerr << "Failed test for BOOST_HAS_STDINT_H at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -763,6 +818,11 @@
       std::cerr << "Failed test for BOOST_HAS_UNISTD_H at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
+ if(0 != boost_has_variadic_tmpl::test())
+ {
+ std::cerr << "Failed test for BOOST_HAS_VARIADIC_TMPL at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
    if(0 != boost_msvc6_member_templates::test())
    {
       std::cerr << "Failed test for BOOST_MSVC6_MEMBER_TEMPLATES at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -878,6 +938,16 @@
       std::cerr << "Failed test for BOOST_NO_INTEGRAL_INT64_T at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
+ if(0 != boost_no_iosfwd::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_IOSFWD at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
+ if(0 != boost_no_iostream::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_IOSTREAM at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
    if(0 != boost_no_is_abstract::test())
    {
       std::cerr << "Failed test for BOOST_NO_IS_ABSTRACT at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1008,6 +1078,11 @@
       std::cerr << "Failed test for BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
+ if(0 != boost_no_std_typeinfo::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_STD_TYPEINFO at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
    if(0 != boost_no_std_use_facet::test())
    {
       std::cerr << "Failed test for BOOST_NO_STD_USE_FACET at: " << __FILE__ << ":" << __LINE__ << std::endl;
@@ -1038,6 +1113,11 @@
       std::cerr << "Failed test for BOOST_NO_TWO_PHASE_NAME_LOOKUP at: " << __FILE__ << ":" << __LINE__ << std::endl;
       ++error_count;
    }
+ if(0 != boost_no_typeid::test())
+ {
+ std::cerr << "Failed test for BOOST_NO_TYPEID at: " << __FILE__ << ":" << __LINE__ << std::endl;
+ ++error_count;
+ }
    if(0 != boost_function_scope_using_declaration_breaks_adl::test())
    {
       std::cerr << "Failed test for BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL at: " << __FILE__ << ":" << __LINE__ << std::endl;

Modified: branches/hash/libs/functional/hash/doc/ref.xml
==============================================================================
--- branches/hash/libs/functional/hash/doc/ref.xml (original)
+++ branches/hash/libs/functional/hash/doc/ref.xml 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -537,6 +537,11 @@
 
         <signature>
           <type>std::size_t</type>
+ <parameter name="val"><paramtype>wchar_t</paramtype></parameter>
+ </signature>
+
+ <signature>
+ <type>std::size_t</type>
           <parameter name="val"><paramtype>short</paramtype></parameter>
         </signature>
 
@@ -741,7 +746,11 @@
               </thead>
               <tbody>
                 <row>
- <entry><code>int</code>, <code>unsigned int</code>, <code>long</code>, <code>unsigned long</code></entry>
+ <entry><code>bool</code>,
+ <code>char</code>, <code>signed char</code>, <code>unsigned char</code>, <code>wchar_t</code>,
+ <code>short</code>, <code>unsigned short</code>,
+ <code>int</code>, <code>unsigned int</code>, <code>long</code>, <code>unsigned long</code>
+ </entry>
                   <entry><code>val</code></entry>
                 </row>
                 <row>

Modified: branches/hash/libs/functional/hash/test/Jamfile.v2
==============================================================================
--- branches/hash/libs/functional/hash/test/Jamfile.v2 (original)
+++ branches/hash/libs/functional/hash/test/Jamfile.v2 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -8,8 +8,8 @@
 project hash-tests
     : requirements
         <toolset>gcc:<define>_GLIBCXX_DEBUG
- "<toolset>gcc:<cxxflags>-Wsign-promo -Wextra"
- <toolset>msvc:<cxxflags>/W4
+ <toolset>gcc:<cxxflags>-Wsign-promo
+ #<toolset>gcc:<cxxflags>-Wextra
     ;
 
 test-suite functional/hash

Modified: branches/hash/libs/graph/doc/bibliography.html
==============================================================================
--- branches/hash/libs/graph/doc/bibliography.html (original)
+++ branches/hash/libs/graph/doc/bibliography.html 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -414,6 +414,28 @@
   <dd>Yuri Boykov and Vladimir Kolmogorov<br>
     <em>An Experimental Comparison of Min-Cut/Max-Flow Algorithms for Energy Minimization in Vision</em><br>
     In IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 26, no. 9, pp. 1124-1137, Sept. 2004.
+
+<p></p><dt><a name="boyermyrvold04">70</a>
+<dd>John M. Boyer and Wendy J. Myrvold<br>
+<em><a href="http://www.emis.de/journals/JGAA/accepted/2004/BoyerMyrvold2004.8.3.pdf">
+On the Cutting Edge: Simplified O(n) Planarity by Edge Addition</a>
+</em><br>
+Journal of Graph Algorithms and Applications, 8(2): 241-273, 2004.
+
+<p></p><dt><a name="chrobakpayne95">71</a>
+<dd>M. Chrobak, T. Payne<br>
+<em>
+A Linear-time Algorithm for Drawing a Planar Graph on the Grid
+</em><br>
+Information Processing Letters 54: 241-246, 1995.
+
+<p></p><dt><a name="defraysseixpachpollack90">72</a>
+<dd>H. de Fraysseix, J. Pach, R. Pollack<br>
+<em>
+How to Draw a Planar Graph on a Grid
+</em><br>
+Combinatorica 10: 41-51, 1990.
+
 </dl>
   
 <br>

Modified: branches/hash/libs/graph/doc/history.html
==============================================================================
--- branches/hash/libs/graph/doc/history.html (original)
+++ branches/hash/libs/graph/doc/history.html 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -86,11 +86,13 @@
       <li>read_dimacs_max_flow and write_dimacs_max_flow for max-flow problems, from Stephan Diederich.</li>
       <li>read_graphml and write_graphml for GraphML input/output, from Tiago de Paula Peixoto.</li>
       <li>minimum_cycle_ratio and maximum_cycle_ratio, from Dmitry Bufistov and Andrey Parfenov.</li>
+ <li>boyer_myrvold_planarity_test, along with a suite of algorithms for planar graphs, from Aaron Windsor.</li>
     </ul><br><b>Enhancements</b><br>
     <ul>
       <li>LEDA Adaptor improvements, from Jens M&uuml;ller.</li>
     </ul>
   </li><br>
+
   <a name="1.34.0"></a><li>Version 1.34.0<br><b>New algorithms and components</b>
     <ul>
       <li>edmonds_maximum_cardinality_matching, from Aaron Windsor.</li>

Modified: branches/hash/libs/graph/doc/table_of_contents.html
==============================================================================
--- branches/hash/libs/graph/doc/table_of_contents.html (original)
+++ branches/hash/libs/graph/doc/table_of_contents.html 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -76,6 +76,7 @@
             <LI>Bellman Ford Visitor
             <LI>A* Visitor</LI>
             <LI>Event Visitor
+ <LI>Planar Face Visitor
           </OL>
         <li>EventVisitorList Adaptors
           <OL>
@@ -216,6 +217,28 @@
                 <li>astar_search</li>
                 <li>lengauer_tarjan_dominator_tree</li>
                 <li>minimum_cycle_ratio and maximum_cycle_ratio</li>
+ <li>Planar Graph Algorithms
+ <ol>
+ <li><a href="boyer_myrvold.html">
+ <tt>boyer_myrvold_planarity_test</tt></a>
+ <li><a href="planar_face_traversal.html">
+ <tt>planar_face_traversal</tt></a>
+ <li><a href="planar_canonical_ordering.html">
+ <tt>planar_canonical_ordering</tt></a>
+ <li><a href="straight_line_drawing.html">
+ <tt>chrobak_payne_straight_line_drawing</tt></a>
+ <li><a href="is_straight_line_drawing.html">
+ <tt>is_straight_line_drawing</tt></a>
+ <li><a href="is_kuratowski_subgraph.html">
+ <tt>is_kuratowski_subgraph</tt></a>
+ <li><a href="make_connected.html">
+ <tt>make_connected</tt></a>
+ <li><a href="make_biconnected_planar.html">
+ <tt>make_biconnected_planar</tt></a>
+ <li><a href="make_maximal_planar.html">
+ <tt>make_maximal_planar</tt></a>
+ </ol>
+
             </OL>
          </OL>
 

Modified: branches/hash/libs/graph/test/Jamfile.v2
==============================================================================
--- branches/hash/libs/graph/test/Jamfile.v2 (original)
+++ branches/hash/libs/graph/test/Jamfile.v2 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -5,6 +5,8 @@
 
 local optional_tests ;
 
+path-constant PLANAR_INPUT_FILES : ./planar_input_graphs ;
+
 if [ modules.peek : EXPAT_INCLUDE ] && [ modules.peek : EXPAT_LIBPATH ]
 {
   optional_tests += [ run graphml_test.cpp ../build//boost_graph ] ;
@@ -105,6 +107,24 @@
 
     [ run cycle_ratio_tests.cpp ../build//boost_graph ]
 
+ [ run basic_planarity_test.cpp ]
+
+ [ run make_connected_test.cpp ]
+
+ [ run make_biconnected_planar_test.cpp ]
+
+ [ run make_maximal_planar_test.cpp ]
+
+ [ run all_planar_input_files_test.cpp
+ ../../filesystem/build
+ ../../system/build
+ : $(PLANAR_INPUT_FILES) ]
+
+ [ run parallel_edges_loops_test.cpp
+ ../../filesystem/build
+ ../../system/build
+ : $(PLANAR_INPUT_FILES) ]
+
     $(optional_tests)
     ;
 

Modified: branches/hash/libs/interprocess/test/allocator_v1.hpp
==============================================================================
--- branches/hash/libs/interprocess/test/allocator_v1.hpp (original)
+++ branches/hash/libs/interprocess/test/allocator_v1.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -28,49 +28,38 @@
 #include <cstddef>
 #include <stdexcept>
 
-/*!\file
- Describes an allocator_v1 that allocates portions of fixed size
- memory buffer (shared memory, mapped file...)
-*/
+//!\file
+//!Describes an allocator_v1 that allocates portions of fixed size
+//!memory buffer (shared memory, mapped file...)
 
 namespace boost {
 namespace interprocess {
 namespace test {
 
-/*!An STL compatible allocator_v1 that uses a segment manager as
- memory source. The internal pointer type will of the same type (raw, smart) as
- "typename SegmentManager::void_pointer" type. This allows
- placing the allocator_v1 in shared memory, memory mapped-files, etc...*/
+//!An STL compatible allocator_v1 that uses a segment manager as
+//!memory source. The internal pointer type will of the same type (raw, smart) as
+//!"typename SegmentManager::void_pointer" type. This allows
+//!placing the allocator_v1 in shared memory, memory mapped-files, etc...*/
 template<class T, class SegmentManager>
 class allocator_v1
 {
  private:
- /*!Self type*/
- typedef allocator_v1<T, SegmentManager> self_t;
-
- /*!Segment manager*/
- typedef SegmentManager segment_manager;
-
- /*!Pointer to void */
+ typedef allocator_v1<T, SegmentManager> self_t;
+ typedef SegmentManager segment_manager;
    typedef typename segment_manager::void_pointer aux_pointer_t;
 
- /*!Typedef to const void pointer */
    typedef typename
       detail::pointer_to_other
          <aux_pointer_t, const void>::type cvoid_ptr;
 
- /*!Pointer to the allocator_v1*/
    typedef typename detail::pointer_to_other
       <cvoid_ptr, segment_manager>::type alloc_ptr_t;
 
- /*!Not assignable from related allocator_v1*/
    template<class T2, class SegmentManager2>
    allocator_v1& operator=(const allocator_v1<T2, SegmentManager2>&);
 
- /*!Not assignable from other allocator_v1*/
    allocator_v1& operator=(const allocator_v1&);
 
- /*!Pointer to the allocator_v1*/
    alloc_ptr_t mp_mngr;
 
  public:
@@ -86,14 +75,14 @@
    typedef std::size_t size_type;
    typedef std::ptrdiff_t difference_type;
 
- /*!Obtains an allocator_v1 of other type*/
+ //!Obtains an allocator_v1 of other type
    template<class T2>
    struct rebind
    {
       typedef allocator_v1<T2, SegmentManager> other;
    };
 
- /*!Returns the segment manager. Never throws*/
+ //!Returns the segment manager. Never throws
    segment_manager* get_segment_manager()const
    { return detail::get_pointer(mp_mngr); }
 /*
@@ -105,25 +94,25 @@
    const_pointer address(const_reference value) const
    { return const_pointer(addressof(value)); }
 */
- /*!Constructor from the segment manager. Never throws*/
+ //!Constructor from the segment manager. Never throws
    allocator_v1(segment_manager *segment_mngr)
       : mp_mngr(segment_mngr) { }
 
- /*!Constructor from other allocator_v1. Never throws*/
+ //!Constructor from other allocator_v1. Never throws
    allocator_v1(const allocator_v1 &other)
       : mp_mngr(other.get_segment_manager()){ }
 
- /*!Constructor from related allocator_v1. Never throws*/
+ //!Constructor from related allocator_v1. Never throws
    template<class T2>
    allocator_v1(const allocator_v1<T2, SegmentManager> &other)
       : mp_mngr(other.get_segment_manager()){}
 
- /*!Allocates memory for an array of count elements.
- Throws boost::interprocess::bad_alloc if there is no enough memory*/
+ //!Allocates memory for an array of count elements.
+ //!Throws boost::interprocess::bad_alloc if there is no enough memory
    pointer allocate(size_type count, cvoid_ptr hint = 0)
    { (void)hint; return pointer((value_type*)mp_mngr->allocate(count*sizeof(value_type))); }
 
- /*!Deallocates memory previously allocated. Never throws*/
+ //!Deallocates memory previously allocated. Never throws
    void deallocate(const pointer &ptr, size_type)
    { mp_mngr->deallocate(detail::get_pointer(ptr)); }
 /*
@@ -136,23 +125,23 @@
    void destroy(const pointer &ptr)
    { BOOST_ASSERT(ptr != 0); (*ptr).~value_type(); }
 */
- /*!Returns the number of elements that could be allocated. Never throws*/
+ //!Returns the number of elements that could be allocated. Never throws
    size_type max_size() const
    { return mp_mngr->get_size(); }
 
- /*!Swap segment manager. Does not throw. If each allocator_v1 is placed in
- different memory segments, the result is undefined.*/
+ //!Swap segment manager. Does not throw. If each allocator_v1 is placed in
+ //!different memory segments, the result is undefined.
    friend void swap(self_t &alloc1, self_t &alloc2)
    { detail::do_swap(alloc1.mp_mngr, alloc2.mp_mngr); }
 };
 
-/*!Equality test for same type of allocator_v1*/
+//!Equality test for same type of allocator_v1
 template<class T, class SegmentManager> inline
 bool operator==(const allocator_v1<T , SegmentManager> &alloc1,
                 const allocator_v1<T, SegmentManager> &alloc2)
    { return alloc1.get_segment_manager() == alloc2.get_segment_manager(); }
 
-/*!Inequality test for same type of allocator_v1*/
+//!Inequality test for same type of allocator_v1
 template<class T, class SegmentManager> inline
 bool operator!=(const allocator_v1<T, SegmentManager> &alloc1,
                 const allocator_v1<T, SegmentManager> &alloc2)

Modified: branches/hash/libs/interprocess/test/allocexcept_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/allocexcept_test.cpp (original)
+++ branches/hash/libs/interprocess/test/allocexcept_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -18,7 +18,7 @@
 #include <functional>
 #include "print_container.hpp"
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 struct InstanceCounter
 {
@@ -36,7 +36,7 @@
 int main ()
 {
    const int memsize = 16384;
- const char *const shMemName = test::get_compiler_name();
+ const char *const shMemName = test::get_process_id_name();
 
    try{
    shared_memory_object::remove(shMemName);

Modified: branches/hash/libs/interprocess/test/check_equal_containers.hpp
==============================================================================
--- branches/hash/libs/interprocess/test/check_equal_containers.hpp (original)
+++ branches/hash/libs/interprocess/test/check_equal_containers.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -32,9 +32,13 @@
 
    typename MyShmCont::iterator itshm(shmcont->begin()), itshmend(shmcont->end());
    typename MyStdCont::iterator itstd(stdcont->begin());
+ if((typename MyShmCont::size_type)std::distance(itshm, itshmend) != shmcont->size()){
+ return false;
+ }
    for(; itshm != itshmend; ++itshm, ++itstd){
       value_type val(*itstd);
- if(*itshm != val)
+ const value_type &v = *itshm;
+ if(v != val)
          return false;
    }
    return true;

Modified: branches/hash/libs/interprocess/test/data_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/data_test.cpp (original)
+++ branches/hash/libs/interprocess/test/data_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -18,17 +18,17 @@
 #include <functional>
 #include <string>
 #include "print_container.hpp"
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 
 int main ()
 {
    const int memsize = 65536;
- std::string compiler_name;
- test::get_compiler_name(compiler_name);
- const char *const shMemName = compiler_name.c_str();
- std::string filename (test::get_compiler_name());
+ std::string process_name;
+ test::get_process_id_name(process_name);
+ const char *const shMemName = process_name.c_str();
+ std::string filename (test::get_process_id_name());
    filename += "_file";
 
    try{

Modified: branches/hash/libs/interprocess/test/deque_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/deque_test.cpp (original)
+++ branches/hash/libs/interprocess/test/deque_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -29,7 +29,7 @@
 #include <boost/interprocess/detail/move.hpp>
 #include <boost/interprocess/detail/mpl.hpp>
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 //***************************************************************//
 // //
@@ -96,7 +96,7 @@
    typedef deque<IntType, shmem_allocator_t> MyShmDeque;
    typedef std::deque<int> MyStdDeque;
    const int Memsize = 65536;
- const char *const shMemName = test::get_compiler_name();
+ const char *const shMemName = test::get_process_id_name();
    const int max = 100;
 
    try{

Modified: branches/hash/libs/interprocess/test/dummy_test_allocator.hpp
==============================================================================
--- branches/hash/libs/interprocess/test/dummy_test_allocator.hpp (original)
+++ branches/hash/libs/interprocess/test/dummy_test_allocator.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -30,9 +30,8 @@
 #include <stdexcept>
 #include <assert.h>
 
-/*!\file
- Describes an allocator to test expand capabilities
-*/
+//!\file
+//!Describes an allocator to test expand capabilities
 
 namespace boost {
 namespace interprocess {
@@ -71,15 +70,15 @@
    struct rebind
    { typedef dummy_test_allocator<T2> other; };
 
- /*!Default constructor. Never throws*/
+ //!Default constructor. Never throws
    dummy_test_allocator()
    {}
 
- /*!Constructor from other dummy_test_allocator. Never throws*/
+ //!Constructor from other dummy_test_allocator. Never throws
    dummy_test_allocator(const dummy_test_allocator &other)
    {}
 
- /*!Constructor from related dummy_test_allocator. Never throws*/
+ //!Constructor from related dummy_test_allocator. Never throws
    template<class T2>
    dummy_test_allocator(const dummy_test_allocator<T2> &other)
    {}
@@ -118,31 +117,31 @@
                          size_type &, const pointer & = 0)
    { return std::pair<pointer, bool>(0, true); }
 
- /*!Returns maximum the number of objects the previously allocated memory
- pointed by p can hold.*/
+ //!Returns maximum the number of objects the previously allocated memory
+ //!pointed by p can hold.
    size_type size(const pointer &) const
    { return 0; }
 
- /*!Allocates just one object. Memory allocated with this function
- must be deallocated only with deallocate_one().
- Throws boost::interprocess::bad_alloc if there is no enough memory*/
+ //!Allocates just one object. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ //!Throws boost::interprocess::bad_alloc if there is no enough memory
    pointer allocate_one()
    { return pointer(0); }
 
- /*!Deallocates memory previously allocated with allocate_one().
- You should never use deallocate_one to deallocate memory allocated
- with other functions different from allocate_one(). Never throws*/
+ //!Deallocates memory previously allocated with allocate_one().
+ //!You should never use deallocate_one to deallocate memory allocated
+ //!with other functions different from allocate_one(). Never throws
    void deallocate_one(const pointer &)
    {}
 };
 
-/*!Equality test for same type of dummy_test_allocator*/
+//!Equality test for same type of dummy_test_allocator
 template<class T> inline
 bool operator==(const dummy_test_allocator<T> &alloc1,
                 const dummy_test_allocator<T> &alloc2)
 { return false; }
 
-/*!Inequality test for same type of dummy_test_allocator*/
+//!Inequality test for same type of dummy_test_allocator
 template<class T> inline
 bool operator!=(const dummy_test_allocator<T> &alloc1,
                 const dummy_test_allocator<T> &alloc2)

Modified: branches/hash/libs/interprocess/test/expand_bwd_test_allocator.hpp
==============================================================================
--- branches/hash/libs/interprocess/test/expand_bwd_test_allocator.hpp (original)
+++ branches/hash/libs/interprocess/test/expand_bwd_test_allocator.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -30,14 +30,11 @@
 #include <stdexcept>
 #include <assert.h>
 
-/*!\file
- Describes an allocator to test expand capabilities
-*/
+//!\file
+//!Describes an allocator to test expand capabilities
 
 namespace boost {
-
 namespace interprocess {
-
 namespace test {
 
 //This allocator just allows two allocations. The first one will return
@@ -73,17 +70,17 @@
    struct rebind
    { typedef expand_bwd_test_allocator<T2> other; };
 
- /*!Constructor from the segment manager. Never throws*/
+ //!Constructor from the segment manager. Never throws
    expand_bwd_test_allocator(T *buffer, size_type size, difference_type offset)
       : mp_buffer(buffer), m_size(size)
       , m_offset(offset), m_allocations(0){ }
 
- /*!Constructor from other expand_bwd_test_allocator. Never throws*/
+ //!Constructor from other expand_bwd_test_allocator. Never throws
    expand_bwd_test_allocator(const expand_bwd_test_allocator &other)
       : mp_buffer(other.mp_buffer), m_size(other.m_size)
       , m_offset(other.m_offset), m_allocations(0){ }
 
- /*!Constructor from related expand_bwd_test_allocator. Never throws*/
+ //!Constructor from related expand_bwd_test_allocator. Never throws
    template<class T2>
    expand_bwd_test_allocator(const expand_bwd_test_allocator<T2> &other)
       : mp_buffer(other.mp_buffer), m_size(other.m_size)
@@ -153,20 +150,20 @@
       return std::pair<pointer, bool>(0, true);
    }
 
- /*!Returns maximum the number of objects the previously allocated memory
- pointed by p can hold.*/
+ //!Returns maximum the number of objects the previously allocated memory
+ //!pointed by p can hold.
    size_type size(const pointer &p) const
    { (void)p; return m_size; }
 
- /*!Allocates just one object. Memory allocated with this function
- must be deallocated only with deallocate_one().
- Throws boost::interprocess::bad_alloc if there is no enough memory*/
+ //!Allocates just one object. Memory allocated with this function
+ //!must be deallocated only with deallocate_one().
+ //!Throws boost::interprocess::bad_alloc if there is no enough memory
    pointer allocate_one()
    { return this->allocate(1); }
 
- /*!Deallocates memory previously allocated with allocate_one().
- You should never use deallocate_one to deallocate memory allocated
- with other functions different from allocate_one(). Never throws*/
+ //!Deallocates memory previously allocated with allocate_one().
+ //!You should never use deallocate_one to deallocate memory allocated
+ //!with other functions different from allocate_one(). Never throws
    void deallocate_one(const pointer &p)
    { return this->deallocate(p, 1); }
 
@@ -176,13 +173,13 @@
    char m_allocations;
 };
 
-/*!Equality test for same type of expand_bwd_test_allocator*/
+//!Equality test for same type of expand_bwd_test_allocator
 template<class T> inline
 bool operator==(const expand_bwd_test_allocator<T> &alloc1,
                 const expand_bwd_test_allocator<T> &alloc2)
 { return false; }
 
-/*!Inequality test for same type of expand_bwd_test_allocator*/
+//!Inequality test for same type of expand_bwd_test_allocator
 template<class T> inline
 bool operator!=(const expand_bwd_test_allocator<T> &alloc1,
                 const expand_bwd_test_allocator<T> &alloc2)

Deleted: branches/hash/libs/interprocess/test/file_lock_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/file_lock_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
+++ (empty file)
@@ -1,51 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////
-//
-// (C) Copyright Ion Gazta�ga 2004-2006. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-// See http://www.boost.org/libs/interprocess for documentation.
-//
-//////////////////////////////////////////////////////////////////////////////
-#include <boost/interprocess/detail/config_begin.hpp>
-#include <boost/interprocess/detail/workaround.hpp>
-#include <boost/interprocess/sync/file_lock.hpp>
-#include <boost/interprocess/sync/scoped_lock.hpp>
-#include <boost/date_time/posix_time/ptime.hpp>
-#include <boost/date_time/posix_time/posix_time_types.hpp>
-#include "mutex_test_template.hpp"
-#include "sharable_mutex_test_template.hpp"
-#include <fstream>
-#include <cstdio>
-
-
-//This wrapper is necessary to have a default constructor
-//in generic mutex_test_template functions
-class file_lock_lock_test_wrapper
- : public boost::interprocess::file_lock
-{
- public:
- file_lock_lock_test_wrapper()
- : boost::interprocess::file_lock("file_lock")
- {}
-};
-
-int main ()
-{
- using namespace boost::interprocess;
- //Destroy and create file
- {
- std::remove("file_lock");
- std::ofstream file("file_lock");
- if(!file){
- return 1;
- }
- }
-
- test::test_all_lock<file_lock_lock_test_wrapper>();
- test::test_all_mutex<false, file_lock_lock_test_wrapper>();
- test::test_all_sharable_mutex<false, file_lock_lock_test_wrapper>();
- return 0;
-}
-
-#include <boost/interprocess/detail/config_end.hpp>

Modified: branches/hash/libs/interprocess/test/file_mapping_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/file_mapping_test.cpp (original)
+++ branches/hash/libs/interprocess/test/file_mapping_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -16,7 +16,7 @@
 #include <memory>
 #include <cstdio>
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 
@@ -26,14 +26,14 @@
       const std::size_t FileSize = 99999*2;
       {
          //Create file with given size
- std::ofstream file(test::get_compiler_name(), std::ios::binary | std::ios::trunc);
+ std::ofstream file(test::get_process_id_name(), std::ios::binary | std::ios::trunc);
          file.seekp(static_cast<std::streamoff>(FileSize-1));
          file.write("", 1);
       }
 
       {
          //Create a file mapping
- file_mapping mapping(test::get_compiler_name(), read_write);
+ file_mapping mapping(test::get_process_id_name(), read_write);
          //Create two mapped regions, one half of the file each
          mapped_region region (mapping
                               ,read_write
@@ -66,7 +66,7 @@
       //See if the pattern is correct in the file
       {
          //Open the file
- std::ifstream file(test::get_compiler_name(), std::ios::binary);
+ std::ifstream file(test::get_process_id_name(), std::ios::binary);
 
          //Create a memory buffer
          std::auto_ptr<unsigned char> memory (new unsigned char [FileSize/2 +1]);
@@ -103,7 +103,7 @@
       //Now check the pattern mapping a single read only mapped_region
       {
          //Create a file mapping
- file_mapping mapping(test::get_compiler_name(), read_only);
+ file_mapping mapping(test::get_process_id_name(), read_only);
 
          //Create a single regions, mapping all the file
          mapped_region region (mapping
@@ -122,11 +122,11 @@
       }
    }
    catch(std::exception &exc){
- std::remove(test::get_compiler_name());
+ std::remove(test::get_process_id_name());
       std::cout << "Unhandled exception: " << exc.what() << std::endl;
       throw;
    }
- std::remove(test::get_compiler_name());
+ std::remove(test::get_process_id_name());
    return 0;
 }
 

Modified: branches/hash/libs/interprocess/test/flat_tree_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/flat_tree_test.cpp (original)
+++ branches/hash/libs/interprocess/test/flat_tree_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -120,6 +120,7 @@
                   ,MyStdSet
                   ,MyShmMultiSet
                   ,MyStdMultiSet>()){
+ std::cout << "Error in set_test<MyShmSet>" << std::endl;
       return 1;
    }
    if (0 != set_test<my_managed_shared_memory
@@ -127,6 +128,7 @@
                   ,MyStdSet
                   ,MyMovableShmMultiSet
                   ,MyStdMultiSet>()){
+ std::cout << "Error in set_test<MyMovableShmSet>" << std::endl;
       return 1;
    }
 
@@ -135,6 +137,7 @@
                   ,MyStdSet
                   ,MyMoveCopyShmMultiSet
                   ,MyStdMultiSet>()){
+ std::cout << "Error in set_test<MyMoveCopyShmSet>" << std::endl;
       return 1;
    }
 
@@ -143,6 +146,7 @@
                   ,MyStdMap
                   ,MyShmMultiMap
                   ,MyStdMultiMap>()){
+ std::cout << "Error in set_test<MyShmMap>" << std::endl;
       return 1;
    }
 
@@ -159,6 +163,7 @@
                   ,MyStdMap
                   ,MyMoveCopyShmMultiMap
                   ,MyStdMultiMap>()){
+ std::cout << "Error in set_test<MyMoveCopyShmMap>" << std::endl;
       return 1;
    }
 

Modified: branches/hash/libs/interprocess/test/intrusive_ptr_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/intrusive_ptr_test.cpp (original)
+++ branches/hash/libs/interprocess/test/intrusive_ptr_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -19,22 +19,6 @@
 #include <algorithm>
 #include <functional>
 
-#if defined(BOOST_MSVC)
-
-#pragma warning(disable: 4786) // identifier truncated in debug info
-#pragma warning(disable: 4710) // function not inlined
-#pragma warning(disable: 4711) // function selected for automatic inline expansion
-#pragma warning(disable: 4514) // unreferenced inline removed
-#pragma warning(disable: 4355) // 'this' : used in base member initializer list
-#pragma warning(disable: 4511) // copy constructor could not be generated
-#pragma warning(disable: 4512) // assignment operator could not be generated
-
-#if (BOOST_MSVC >= 1310)
-#pragma warning(disable: 4675) // resolved overload found with Koenig lookup
-#endif
-
-#endif
-
 typedef boost::interprocess::offset_ptr<void> VP;
 
 namespace N

Modified: branches/hash/libs/interprocess/test/list_test.hpp
==============================================================================
--- branches/hash/libs/interprocess/test/list_test.hpp (original)
+++ branches/hash/libs/interprocess/test/list_test.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -21,7 +21,7 @@
 #include <boost/interprocess/detail/move.hpp>
 #include <boost/interprocess/detail/move_iterator.hpp>
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 namespace boost{
 namespace interprocess{
@@ -94,7 +94,7 @@
    typedef std::list<int> MyStdList;
    typedef typename MyShmList::value_type IntType;
    const int memsize = 65536;
- const char *const shMemName = test::get_compiler_name();
+ const char *const shMemName = test::get_process_id_name();
    const int max = 100;
    typedef push_data_function<DoublyLinked> push_data_t;
 

Modified: branches/hash/libs/interprocess/test/managed_mapped_file_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/managed_mapped_file_test.cpp (original)
+++ branches/hash/libs/interprocess/test/managed_mapped_file_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -14,14 +14,14 @@
 #include <boost/interprocess/managed_mapped_file.hpp>
 #include <cstdio>
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 
 int main ()
 {
    const int FileSize = 65536;
- const char *const FileName = test::get_compiler_name();
+ const char *const FileName = test::get_process_id_name();
 
    //STL compatible allocator object for memory-mapped file
    typedef allocator<int, managed_mapped_file::segment_manager>

Modified: branches/hash/libs/interprocess/test/managed_windows_shared_memory_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/managed_windows_shared_memory_test.cpp (original)
+++ branches/hash/libs/interprocess/test/managed_windows_shared_memory_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -17,14 +17,14 @@
 #include <boost/interprocess/managed_windows_shared_memory.hpp>
 #include <cstdio>
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 
 int main ()
 {
    const int MemSize = 65536;
- const char *const MemName = test::get_compiler_name();
+ const char *const MemName = test::get_process_id_name();
 
    //STL compatible allocator object for shared memory
    typedef allocator<int, managed_windows_shared_memory::segment_manager>

Modified: branches/hash/libs/interprocess/test/map_test.hpp
==============================================================================
--- branches/hash/libs/interprocess/test/map_test.hpp (original)
+++ branches/hash/libs/interprocess/test/map_test.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -21,7 +21,7 @@
 #include <boost/interprocess/detail/utilities.hpp>
 #include <boost/interprocess/detail/iterators.hpp>
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 template<class T1, class T2, class T3, class T4>
 bool operator ==(std::pair<T1, T2> &p1, std::pair<T1, T2> &p2)
@@ -44,7 +44,7 @@
    typedef std::pair<IntType, IntType> IntPairType;
    typedef typename MyStdMap::value_type StdPairType;
    const int memsize = 65536;
- const char *const shMemName = test::get_compiler_name();
+ const char *const shMemName = test::get_process_id_name();
    const int max = 100;
 
    try{
@@ -338,7 +338,7 @@
    typedef typename MyStdMap::value_type StdPairType;
 
    const int memsize = 65536;
- const char *const shMemName = test::get_compiler_name();
+ const char *const shMemName = test::get_process_id_name();
    const int max = 100;
 
    try{

Modified: branches/hash/libs/interprocess/test/mapped_file_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/mapped_file_test.cpp (original)
+++ branches/hash/libs/interprocess/test/mapped_file_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -17,12 +17,12 @@
 #include <cstdio>
 #include <cstring>
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 
 static const std::size_t FileSize = 1000;
-static const char * FileName = test::get_compiler_name();
+static const char * FileName = test::get_process_id_name();
 
 struct file_destroyer
 {

Modified: branches/hash/libs/interprocess/test/memory_algorithm_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/memory_algorithm_test.cpp (original)
+++ branches/hash/libs/interprocess/test/memory_algorithm_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -17,13 +17,13 @@
 #include "memory_algorithm_test_template.hpp"
 #include <iostream>
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 int main ()
 {
    using namespace boost::interprocess;
    const int memsize = 16384;
- const char *const shMemName = test::get_compiler_name();
+ const char *const shMemName = test::get_process_id_name();
 
    {
       //A shared memory with simple sequential fit algorithm

Modified: branches/hash/libs/interprocess/test/message_queue_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/message_queue_test.cpp (original)
+++ branches/hash/libs/interprocess/test/message_queue_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -21,7 +21,7 @@
 #include <boost/thread.hpp>
 #include <memory>
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 #ifdef max
 #undef max
@@ -40,12 +40,12 @@
 //messages with same priority are received in fifo order
 bool test_priority_order()
 {
- message_queue::remove(test::get_compiler_name());
+ message_queue::remove(test::get_process_id_name());
    {
       message_queue mq1
- (open_or_create, test::get_compiler_name(), 100, sizeof(std::size_t)),
+ (open_or_create, test::get_process_id_name(), 100, sizeof(std::size_t)),
          mq2
- (open_or_create, test::get_compiler_name(), 100, sizeof(std::size_t));
+ (open_or_create, test::get_process_id_name(), 100, sizeof(std::size_t));
 
       //We test that the queue is ordered by priority and in the
       //same priority, is a FIFO
@@ -77,7 +77,7 @@
          tstamp_prev = tstamp;
       }
    }
- message_queue::remove(test::get_compiler_name());
+ message_queue::remove(test::get_process_id_name());
    return true;
 }
 
@@ -105,13 +105,13 @@
    //Allocate a memory buffer to hold the destiny database using vector<char>
    std::vector<char> buffer_destiny(BufferSize, 0);
 
- message_queue::remove(test::get_compiler_name());
+ message_queue::remove(test::get_process_id_name());
    {
       //Create the message-queues
- message_queue mq1(create_only, test::get_compiler_name(), 1, MaxMsgSize);
+ message_queue mq1(create_only, test::get_process_id_name(), 1, MaxMsgSize);
 
       //Open previously created message-queue simulating other process
- message_queue mq2(open_only, test::get_compiler_name());
+ message_queue mq2(open_only, test::get_process_id_name());
 
       //A managed heap memory to create the origin database
       managed_heap_memory db_origin(buffer_destiny.size());
@@ -196,7 +196,7 @@
       db_origin.destroy_ptr(map1);
       db_destiny.destroy_ptr(map2);
    }
- message_queue::remove(test::get_compiler_name());
+ message_queue::remove(test::get_process_id_name());
    return true;
 }
 //]
@@ -221,11 +221,11 @@
 
 bool test_buffer_overflow()
 {
- boost::interprocess::message_queue::remove(test::get_compiler_name());
+ boost::interprocess::message_queue::remove(test::get_process_id_name());
    {
       std::auto_ptr<boost::interprocess::message_queue>
          ptr(new boost::interprocess::message_queue
- (create_only, test::get_compiler_name(), 10, 10));
+ (create_only, test::get_process_id_name(), 10, 10));
       pmessage_queue = ptr.get();
 
       //Launch the receiver thread
@@ -240,7 +240,7 @@
 
       thread.join();
    }
- boost::interprocess::message_queue::remove(test::get_compiler_name());
+ boost::interprocess::message_queue::remove(test::get_process_id_name());
    return true;
 }
 

Modified: branches/hash/libs/interprocess/test/named_allocation_test_template.hpp
==============================================================================
--- branches/hash/libs/interprocess/test/named_allocation_test_template.hpp (original)
+++ branches/hash/libs/interprocess/test/named_allocation_test_template.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -24,7 +24,7 @@
 #include <iterator>
 #include <set>
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 namespace boost { namespace interprocess { namespace test {
 
@@ -427,7 +427,7 @@
 {
    using namespace boost::interprocess;
    const int memsize = 163840;
- const char *const shMemName = test::get_compiler_name();
+ const char *const shMemName = test::get_process_id_name();
    try
    {
       //A shared memory with rbtree best fit algorithm

Modified: branches/hash/libs/interprocess/test/named_condition_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/named_condition_test.cpp (original)
+++ branches/hash/libs/interprocess/test/named_condition_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -17,7 +17,7 @@
 #include "condition_test_template.hpp"
 #include "named_creation_template.hpp"
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 
@@ -28,7 +28,7 @@
    ~condition_deleter()
    {
       if(name.empty())
- named_condition::remove(test::add_to_compiler_name("named_condition"));
+ named_condition::remove(test::add_to_process_id_name("named_condition"));
       else
          named_condition::remove(name.c_str());
    }
@@ -43,9 +43,9 @@
 
    named_condition_test_wrapper()
       : named_condition(open_or_create,
- (test::add_to_compiler_name("test_cond") + boost::lexical_cast<std::string>(count)).c_str())
+ (test::add_to_process_id_name("test_cond") + boost::lexical_cast<std::string>(count)).c_str())
    {
- condition_deleter::name += test::add_to_compiler_name("test_cond");
+ condition_deleter::name += test::add_to_process_id_name("test_cond");
       condition_deleter::name += boost::lexical_cast<std::string>(count);
       ++count;
    }
@@ -65,15 +65,15 @@
 {
    public:
    named_condition_creation_test_wrapper(create_only_t)
- : named_condition(create_only, test::add_to_compiler_name("named_condition"))
+ : named_condition(create_only, test::add_to_process_id_name("named_condition"))
    {}
 
    named_condition_creation_test_wrapper(open_only_t)
- : named_condition(open_only, test::add_to_compiler_name("named_condition"))
+ : named_condition(open_only, test::add_to_process_id_name("named_condition"))
    {}
 
    named_condition_creation_test_wrapper(open_or_create_t)
- : named_condition(open_or_create, test::add_to_compiler_name("named_condition"))
+ : named_condition(open_or_create, test::add_to_process_id_name("named_condition"))
    {}
 };
 
@@ -84,7 +84,7 @@
    ~mutex_deleter()
    {
       if(name.empty())
- named_mutex::remove(test::add_to_compiler_name("named_mutex"));
+ named_mutex::remove(test::add_to_process_id_name("named_mutex"));
       else
          named_mutex::remove(name.c_str());
    }
@@ -98,9 +98,9 @@
    public:
    named_mutex_test_wrapper()
       : named_mutex(open_or_create,
- (test::add_to_compiler_name("test_mutex") + boost::lexical_cast<std::string>(count)).c_str())
+ (test::add_to_process_id_name("test_mutex") + boost::lexical_cast<std::string>(count)).c_str())
    {
- mutex_deleter::name += test::add_to_compiler_name("test_mutex");
+ mutex_deleter::name += test::add_to_process_id_name("test_mutex");
       mutex_deleter::name += boost::lexical_cast<std::string>(count);
       ++count;
    }
@@ -117,11 +117,11 @@
 {
    try{
       //Remove previous mutexes and conditions
- named_mutex::remove(test::add_to_compiler_name("test_mutex0"));
- named_condition::remove(test::add_to_compiler_name("test_cond0"));
- named_condition::remove(test::add_to_compiler_name("test_cond1"));
- named_condition::remove(test::add_to_compiler_name("named_condition"));
- named_mutex::remove(test::add_to_compiler_name("named_mutex"));
+ named_mutex::remove(test::add_to_process_id_name("test_mutex0"));
+ named_condition::remove(test::add_to_process_id_name("test_cond0"));
+ named_condition::remove(test::add_to_process_id_name("test_cond1"));
+ named_condition::remove(test::add_to_process_id_name("named_condition"));
+ named_mutex::remove(test::add_to_process_id_name("named_mutex"));
 
       test::test_named_creation<named_condition_creation_test_wrapper>();
       test::do_test_condition<named_condition_test_wrapper
@@ -131,11 +131,11 @@
       std::cout << ex.what() << std::endl;
       return 1;
    }
- named_mutex::remove(test::add_to_compiler_name("test_mutex0"));
- named_condition::remove(test::add_to_compiler_name("test_cond0"));
- named_condition::remove(test::add_to_compiler_name("test_cond1"));
- named_condition::remove(test::add_to_compiler_name("named_condition"));
- named_mutex::remove(test::add_to_compiler_name("named_mutex"));
+ named_mutex::remove(test::add_to_process_id_name("test_mutex0"));
+ named_condition::remove(test::add_to_process_id_name("test_cond0"));
+ named_condition::remove(test::add_to_process_id_name("test_cond1"));
+ named_condition::remove(test::add_to_process_id_name("named_condition"));
+ named_mutex::remove(test::add_to_process_id_name("named_mutex"));
    return 0;
 }
 

Modified: branches/hash/libs/interprocess/test/named_mutex_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/named_mutex_test.cpp (original)
+++ branches/hash/libs/interprocess/test/named_mutex_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -14,14 +14,14 @@
 #include "mutex_test_template.hpp"
 #include "named_creation_template.hpp"
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 
 struct mutex_deleter
 {
    ~mutex_deleter()
- { named_mutex::remove(test::get_compiler_name()); }
+ { named_mutex::remove(test::get_process_id_name()); }
 };
 
 //This wrapper is necessary to have a default constructor
@@ -31,7 +31,7 @@
 {
    public:
    named_mutex_lock_test_wrapper()
- : named_mutex(open_or_create, test::get_compiler_name())
+ : named_mutex(open_or_create, test::get_process_id_name())
    {}
 };
 
@@ -42,32 +42,32 @@
 {
    public:
    named_mutex_creation_test_wrapper(create_only_t)
- : named_mutex(create_only, test::get_compiler_name())
+ : named_mutex(create_only, test::get_process_id_name())
    {}
 
    named_mutex_creation_test_wrapper(open_only_t)
- : named_mutex(open_only, test::get_compiler_name())
+ : named_mutex(open_only, test::get_process_id_name())
    {}
 
    named_mutex_creation_test_wrapper(open_or_create_t)
- : named_mutex(open_or_create, test::get_compiler_name())
+ : named_mutex(open_or_create, test::get_process_id_name())
    {}
 };
 
 int main ()
 {
    try{
- named_mutex::remove(test::get_compiler_name());
+ named_mutex::remove(test::get_process_id_name());
       test::test_named_creation<named_mutex_creation_test_wrapper>();
       test::test_all_lock<named_mutex_lock_test_wrapper>();
       test::test_all_mutex<false, named_mutex_lock_test_wrapper>();
    }
    catch(std::exception &ex){
- named_mutex::remove(test::get_compiler_name());
+ named_mutex::remove(test::get_process_id_name());
       std::cout << ex.what() << std::endl;
       return 1;
    }
- named_mutex::remove(test::get_compiler_name());
+ named_mutex::remove(test::get_process_id_name());
    return 0;
 }
 

Modified: branches/hash/libs/interprocess/test/named_recursive_mutex_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/named_recursive_mutex_test.cpp (original)
+++ branches/hash/libs/interprocess/test/named_recursive_mutex_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -15,14 +15,14 @@
 #include "mutex_test_template.hpp"
 #include "named_creation_template.hpp"
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 
 struct mutex_deleter
 {
    ~mutex_deleter()
- { named_recursive_mutex::remove(test::get_compiler_name()); }
+ { named_recursive_mutex::remove(test::get_process_id_name()); }
 };
 
 //This wrapper is necessary to have a default constructor
@@ -32,7 +32,7 @@
 {
    public:
    named_recursive_mutex_lock_test_wrapper()
- : named_recursive_mutex(open_or_create, test::get_compiler_name())
+ : named_recursive_mutex(open_or_create, test::get_process_id_name())
    {}
 };
 
@@ -43,33 +43,33 @@
 {
    public:
    named_mutex_creation_test_wrapper(create_only_t)
- : named_recursive_mutex(create_only, test::get_compiler_name())
+ : named_recursive_mutex(create_only, test::get_process_id_name())
    {}
 
    named_mutex_creation_test_wrapper(open_only_t)
- : named_recursive_mutex(open_only, test::get_compiler_name())
+ : named_recursive_mutex(open_only, test::get_process_id_name())
    {}
 
    named_mutex_creation_test_wrapper(open_or_create_t)
- : named_recursive_mutex(open_or_create, test::get_compiler_name())
+ : named_recursive_mutex(open_or_create, test::get_process_id_name())
    {}
 };
 
 int main ()
 {
    try{
- named_recursive_mutex::remove(test::get_compiler_name());
+ named_recursive_mutex::remove(test::get_process_id_name());
       test::test_named_creation<named_mutex_creation_test_wrapper>();
       test::test_all_lock<named_recursive_mutex_lock_test_wrapper>();
       test::test_all_mutex<false, named_recursive_mutex_lock_test_wrapper>();
       test::test_all_recursive_lock<named_recursive_mutex_lock_test_wrapper>();
    }
    catch(std::exception &ex){
- named_recursive_mutex::remove(test::get_compiler_name());
+ named_recursive_mutex::remove(test::get_process_id_name());
       std::cout << ex.what() << std::endl;
       return 1;
    }
- named_recursive_mutex::remove(test::get_compiler_name());
+ named_recursive_mutex::remove(test::get_process_id_name());
    return 0;
 }
 

Modified: branches/hash/libs/interprocess/test/named_semaphore_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/named_semaphore_test.cpp (original)
+++ branches/hash/libs/interprocess/test/named_semaphore_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -15,13 +15,13 @@
 #include "named_creation_template.hpp"
 #include "mutex_test_template.hpp"
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 
 static const std::size_t SemCount = 1;
 static const std::size_t RecSemCount = 100;
-static const char * SemName = test::get_compiler_name();
+static const char * SemName = test::get_process_id_name();
 
 struct semaphore_deleter
 {

Modified: branches/hash/libs/interprocess/test/named_upgradable_mutex_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/named_upgradable_mutex_test.cpp (original)
+++ branches/hash/libs/interprocess/test/named_upgradable_mutex_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -14,14 +14,14 @@
 #include "named_creation_template.hpp"
 #include <boost/interprocess/sync/named_upgradable_mutex.hpp>
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 
 struct mutex_deleter
 {
    ~mutex_deleter()
- { named_upgradable_mutex::remove(test::get_compiler_name()); }
+ { named_upgradable_mutex::remove(test::get_process_id_name()); }
 };
 
 //This wrapper is necessary to have a default constructor
@@ -31,7 +31,7 @@
 {
    public:
    named_upgradable_mutex_lock_test_wrapper()
- : named_upgradable_mutex(open_or_create, test::get_compiler_name())
+ : named_upgradable_mutex(open_or_create, test::get_process_id_name())
    {}
 };
 
@@ -43,35 +43,35 @@
    public:
    named_upgradable_mutex_creation_test_wrapper
       (create_only_t)
- : named_upgradable_mutex(create_only, test::get_compiler_name())
+ : named_upgradable_mutex(create_only, test::get_process_id_name())
    {}
 
    named_upgradable_mutex_creation_test_wrapper
       (open_only_t)
- : named_upgradable_mutex(open_only, test::get_compiler_name())
+ : named_upgradable_mutex(open_only, test::get_process_id_name())
    {}
 
    named_upgradable_mutex_creation_test_wrapper
       (open_or_create_t)
- : named_upgradable_mutex(open_or_create, test::get_compiler_name())
+ : named_upgradable_mutex(open_or_create, test::get_process_id_name())
    {}
 };
 
 int main ()
 {
    try{
- named_upgradable_mutex::remove(test::get_compiler_name());
+ named_upgradable_mutex::remove(test::get_process_id_name());
       test::test_named_creation<named_upgradable_mutex_creation_test_wrapper>();
 // test::test_all_lock<named_upgradable_mutex_lock_test_wrapper>();
 // test::test_all_mutex<true, named_upgradable_mutex_lock_test_wrapper>();
 // test::test_all_sharable_mutex<true, named_upgradable_mutex_lock_test_wrapper>();
    }
    catch(std::exception &ex){
- named_upgradable_mutex::remove(test::get_compiler_name());
+ named_upgradable_mutex::remove(test::get_process_id_name());
       std::cout << ex.what() << std::endl;
       return 1;
    }
- named_upgradable_mutex::remove(test::get_compiler_name());
+ named_upgradable_mutex::remove(test::get_process_id_name());
    return 0;
 }
 

Modified: branches/hash/libs/interprocess/test/node_pool_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/node_pool_test.cpp (original)
+++ branches/hash/libs/interprocess/test/node_pool_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -7,16 +7,16 @@
 // See http://www.boost.org/libs/interprocess for documentation.
 //
 //////////////////////////////////////////////////////////////////////////////
-
+/*
 #include <boost/interprocess/detail/config_begin.hpp>
 #include <boost/interprocess/managed_shared_memory.hpp>
 #include <boost/interprocess/allocators/detail/node_pool.hpp>
 #include <boost/interprocess/smart_ptr/unique_ptr.hpp>
-#include <boost/interprocess/smart_ptr/segment_deleter.hpp>
+#include <boost/interprocess/smart_ptr/deleter.hpp>
 #include <vector>
 #include <cstddef>
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 
@@ -134,11 +134,11 @@
       <segment_manager, NodeSize, NodesPerChunk> node_pool_t;
 
    typedef test_node_pool<node_pool_t> test_node_pool_t;
- shared_memory_object::remove(test::get_compiler_name());
+ shared_memory_object::remove(test::get_process_id_name());
    {
- managed_shared_memory shm(create_only, test::get_compiler_name(), 4096);
+ managed_shared_memory shm(create_only, test::get_process_id_name(), 4096);
 
- typedef segment_deleter<segment_manager, void*> deleter_t;
+ typedef deleter<node_pool_t, segment_manager> deleter_t;
       typedef unique_ptr<node_pool_t, deleter_t> unique_ptr_t;
 
       //Delete the pool when the tests end
@@ -152,7 +152,7 @@
       if(!test_node_pool_t::deallocate_free_chunks(*p))
          return false;
    }
- shared_memory_object::remove(test::get_compiler_name());
+ shared_memory_object::remove(test::get_process_id_name());
    return true;
 }
 
@@ -165,3 +165,13 @@
 }
 
 #include <boost/interprocess/detail/config_end.hpp>
+*/
+
+#include<stdlib.h>
+
+int main()
+{
+ void *addr = malloc(100);
+ free(addr);
+ return 0;
+}
\ No newline at end of file

Modified: branches/hash/libs/interprocess/test/null_index_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/null_index_test.cpp (original)
+++ branches/hash/libs/interprocess/test/null_index_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -15,7 +15,7 @@
 #include <cstddef>
 #include <assert.h>
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 typedef basic_managed_shared_memory
@@ -25,11 +25,11 @@
 int main ()
 {
    //Create shared memory
- shared_memory_object::remove(test::get_compiler_name());
+ shared_memory_object::remove(test::get_process_id_name());
    {
       my_shared_objects_t segment
          (create_only,
- test::get_compiler_name(), //segment name
+ test::get_process_id_name(), //segment name
          65536); //segment size in bytes
 
       //Allocate a portion of the segment
@@ -44,7 +44,7 @@
 
       segment.deallocate(shptr);
    }
- shared_memory_object::remove(test::get_compiler_name());
+ shared_memory_object::remove(test::get_process_id_name());
    return 0;
 }
 

Modified: branches/hash/libs/interprocess/test/set_test.hpp
==============================================================================
--- branches/hash/libs/interprocess/test/set_test.hpp (original)
+++ branches/hash/libs/interprocess/test/set_test.hpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -19,7 +19,7 @@
 #include "print_container.hpp"
 #include <boost/interprocess/detail/move_iterator.hpp>
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 namespace boost{
 namespace interprocess{
@@ -34,7 +34,7 @@
 {
    typedef typename MyShmSet::value_type IntType;
    const int memsize = 65536;
- const char *const shMemName = test::get_compiler_name();
+ const char *const shMemName = test::get_process_id_name();
    const int max = 100;
 
    try{
@@ -90,8 +90,14 @@
                , std::less<IntType>(), segment.get_segment_manager());
 
          MyStdMultiSet *stdmultiset2 = new MyStdMultiSet(aux_vect2, aux_vect2 + 50);
- if(!CheckEqualContainers(shmset2, stdset2)) return 1;
- if(!CheckEqualContainers(shmmultiset2, stdmultiset2)) return 1;
+ if(!CheckEqualContainers(shmset2, stdset2)){
+ std::cout << "Error in construct<MyShmSet>(MyShmSet2)" << std::endl;
+ return 1;
+ }
+ if(!CheckEqualContainers(shmmultiset2, stdmultiset2)){
+ std::cout << "Error in construct<MyShmMultiSet>(MyShmMultiSet2)" << std::endl;
+ return 1;
+ }
          segment.destroy_ptr(shmset2);
          segment.destroy_ptr(shmmultiset2);
          delete stdset2;
@@ -104,13 +110,19 @@
          shmset->insert(move(move_me));
          stdset->insert(i);
          IntType move_me2(i);
- if(i == 9)
- i = i;
          shmmultiset->insert(move(move_me2));
          stdmultiset->insert(i);
       }
 
- if(!CheckEqualContainers(shmmultiset, stdmultiset)) return 1;
+ if(!CheckEqualContainers(shmset, stdset)){
+ std::cout << "Error in shmset->insert(move(move_me)" << std::endl;
+ return 1;
+ }
+
+ if(!CheckEqualContainers(shmmultiset, stdmultiset)){
+ std::cout << "Error in shmmultiset->insert(move(move_me)" << std::endl;
+ return 1;
+ }
 
       typename MyShmSet::iterator it;
       typename MyShmSet::const_iterator cit = it;
@@ -119,15 +131,27 @@
       stdset->erase(stdset->begin()++);
       shmmultiset->erase(shmmultiset->begin()++);
       stdmultiset->erase(stdmultiset->begin()++);
- if(!CheckEqualContainers(shmset, stdset)) return 1;
- if(!CheckEqualContainers(shmmultiset, stdmultiset)) return 1;
+ if(!CheckEqualContainers(shmset, stdset)){
+ std::cout << "Error in shmset->erase(shmset->begin()++)" << std::endl;
+ return 1;
+ }
+ if(!CheckEqualContainers(shmmultiset, stdmultiset)){
+ std::cout << "Error in shmmultiset->erase(shmmultiset->begin()++)" << std::endl;
+ return 1;
+ }
 
       shmset->erase(shmset->begin());
       stdset->erase(stdset->begin());
       shmmultiset->erase(shmmultiset->begin());
       stdmultiset->erase(stdmultiset->begin());
- if(!CheckEqualContainers(shmset, stdset)) return 1;
- if(!CheckEqualContainers(shmmultiset, stdmultiset)) return 1;
+ if(!CheckEqualContainers(shmset, stdset)){
+ std::cout << "Error in shmset->erase(shmset->begin())" << std::endl;
+ return 1;
+ }
+ if(!CheckEqualContainers(shmmultiset, stdmultiset)){
+ std::cout << "Error in shmmultiset->erase(shmmultiset->begin())" << std::endl;
+ return 1;
+ }
 
       //Swapping test
       std::less<IntType> lessfunc;
@@ -143,8 +167,14 @@
       stdset->swap(tmpstdset2);
       shmmultiset->swap(tmpshmemultiset2);
       stdmultiset->swap(tmpstdmultiset2);
- if(!CheckEqualContainers(shmset, stdset)) return 1;
- if(!CheckEqualContainers(shmmultiset, stdmultiset)) return 1;
+ if(!CheckEqualContainers(shmset, stdset)){
+ std::cout << "Error in shmset->swap(tmpshmeset2)" << std::endl;
+ return 1;
+ }
+ if(!CheckEqualContainers(shmmultiset, stdmultiset)){
+ std::cout << "Error in shmmultiset->swap(tmpshmemultiset2)" << std::endl;
+ return 1;
+ }
 
       //Insertion from other container
       //Initialize values
@@ -168,8 +198,14 @@
          stdset->insert(aux_vect2, aux_vect2 + 50);
          shmmultiset->insert(detail::make_move_iterator(&aux_vect3[0]), detail::make_move_iterator(aux_vect3 + 50));
          stdmultiset->insert(aux_vect2, aux_vect2 + 50);
- if(!CheckEqualContainers(shmset, stdset)) return 1;
- if(!CheckEqualContainers(shmmultiset, stdmultiset)) return 1;
+ if(!CheckEqualContainers(shmset, stdset)){
+ std::cout << "Error in shmset->insert(detail::make_move_iterator(&aux_vect[0])..." << std::endl;
+ return 1;
+ }
+ if(!CheckEqualContainers(shmmultiset, stdmultiset)){
+ std::cout << "Error in shmmultiset->insert(detail::make_move_iterator(&aux_vect3[0]), ..." << std::endl;
+ return 1;
+ }
 
          for(int i = 0, j = static_cast<int>(shmset->size()); i < j; ++i){
             IntType erase_me(i);
@@ -177,9 +213,15 @@
             stdset->erase(i);
             shmmultiset->erase(erase_me);
             stdmultiset->erase(i);
+ if(!CheckEqualContainers(shmset, stdset)){
+ std::cout << "Error in shmset->erase(erase_me)" << shmset->size() << " " << stdset->size() << std::endl;
+ return 1;
+ }
+ if(!CheckEqualContainers(shmmultiset, stdmultiset)){
+ std::cout << "Error in shmmultiset->erase(erase_me)" << std::endl;
+ return 1;
+ }
          }
- if(!CheckEqualContainers(shmset, stdset)) return 1;
- if(!CheckEqualContainers(shmmultiset, stdmultiset)) return 1;
       }
       {
          IntType aux_vect[50];
@@ -217,15 +259,27 @@
          shmmultiset->insert(detail::make_move_iterator(&aux_vect5[0]), detail::make_move_iterator(aux_vect5 + 50));
          stdmultiset->insert(aux_vect2, aux_vect2 + 50);
          stdmultiset->insert(aux_vect2, aux_vect2 + 50);
- if(!CheckEqualContainers(shmset, stdset)) return 1;
- if(!CheckEqualContainers(shmmultiset, stdmultiset)) return 1;
+ if(!CheckEqualContainers(shmset, stdset)){
+ std::cout << "Error in shmset->insert(detail::make_move_iterator(&aux_vect3[0])..." << std::endl;
+ return 1;
+ }
+ if(!CheckEqualContainers(shmmultiset, stdmultiset)){
+ std::cout << "Error in shmmultiset->insert(detail::make_move_iterator(&aux_vect5[0])..." << std::endl;
+ return 1;
+ }
 
          shmset->erase(*shmset->begin());
          stdset->erase(*stdset->begin());
          shmmultiset->erase(*shmmultiset->begin());
          stdmultiset->erase(*stdmultiset->begin());
- if(!CheckEqualContainers(shmset, stdset)) return 1;
- if(!CheckEqualContainers(shmmultiset, stdmultiset)) return 1;
+ if(!CheckEqualContainers(shmset, stdset)){
+ std::cout << "Error in shmset->erase(*shmset->begin())" << std::endl;
+ return 1;
+ }
+ if(!CheckEqualContainers(shmmultiset, stdmultiset)){
+ std::cout << "Error in shmmultiset->erase(*shmmultiset->begin())" << std::endl;
+ return 1;
+ }
       }
 
       for(i = 0; i < max; ++i){
@@ -237,8 +291,14 @@
          stdmultiset->insert(i);
       }
 
- if(!CheckEqualContainers(shmset, stdset)) return 1;
- if(!CheckEqualContainers(shmmultiset, stdmultiset)) return 1;
+ if(!CheckEqualContainers(shmset, stdset)){
+ std::cout << "Error in shmset->insert(move(move_me)) try 2" << std::endl;
+ return 1;
+ }
+ if(!CheckEqualContainers(shmmultiset, stdmultiset)){
+ std::cout << "Error in shmmultiset->insert(move(move_me2)) try 2" << std::endl;
+ return 1;
+ }
 
       for(i = 0; i < max; ++i){
          IntType move_me(i);
@@ -249,10 +309,14 @@
          shmmultiset->insert(shmmultiset->begin(), move(move_me2));
          stdmultiset->insert(stdmultiset->begin(), i);
          //PrintContainers(shmmultiset, stdmultiset);
- if(!CheckEqualContainers(shmset, stdset))
+ if(!CheckEqualContainers(shmset, stdset)){
+ std::cout << "Error in shmset->insert(shmset->begin(), move(move_me))" << std::endl;
             return 1;
- if(!CheckEqualContainers(shmmultiset, stdmultiset))
+ }
+ if(!CheckEqualContainers(shmmultiset, stdmultiset)){
+ std::cout << "Error in shmmultiset->insert(shmmultiset->begin(), move(move_me2))" << std::endl;
             return 1;
+ }
 
          IntType move_me3(i);
          shmset->insert(shmset->end(), move(move_me3));
@@ -260,10 +324,14 @@
          IntType move_me4(i);
          shmmultiset->insert(shmmultiset->end(), move(move_me4));
          stdmultiset->insert(stdmultiset->end(), i);
- if(!CheckEqualContainers(shmset, stdset))
+ if(!CheckEqualContainers(shmset, stdset)){
+ std::cout << "Error in shmset->insert(shmset->end(), move(move_me3))" << std::endl;
             return 1;
- if(!CheckEqualContainers(shmmultiset, stdmultiset))
+ }
+ if(!CheckEqualContainers(shmmultiset, stdmultiset)){
+ std::cout << "Error in shmmultiset->insert(shmmultiset->end(), move(move_me4))" << std::endl;
             return 1;
+ }
          {
          IntType move_me(i);
          shmset->insert(shmset->upper_bound(move_me), move(move_me));
@@ -273,10 +341,14 @@
          shmmultiset->insert(shmmultiset->upper_bound(move_me2), move(move_me2));
          stdmultiset->insert(stdmultiset->upper_bound(i), i);
          //PrintContainers(shmmultiset, stdmultiset);
- if(!CheckEqualContainers(shmset, stdset))
+ if(!CheckEqualContainers(shmset, stdset)){
+ std::cout << "Error in shmset->insert(shmset->upper_bound(move_me), move(move_me))" << std::endl;
             return 1;
- if(!CheckEqualContainers(shmmultiset, stdmultiset))
+ }
+ if(!CheckEqualContainers(shmmultiset, stdmultiset)){
+ std::cout << "Error in shmmultiset->insert(shmmultiset->upper_bound(move_me2), move(move_me2))" << std::endl;
             return 1;
+ }
 
          }
          {
@@ -288,11 +360,15 @@
          shmmultiset->insert(shmmultiset->lower_bound(move_me2), move(move_me2));
          stdmultiset->insert(stdmultiset->lower_bound(i), i);
          //PrintContainers(shmmultiset, stdmultiset);
- if(!CheckEqualContainers(shmset, stdset))
+ if(!CheckEqualContainers(shmset, stdset)){
+ std::cout << "Error in shmset->insert(shmset->lower_bound(move_me), move(move_me2))" << std::endl;
             return 1;
- if(!CheckEqualContainers(shmmultiset, stdmultiset))
+ }
+ if(!CheckEqualContainers(shmmultiset, stdmultiset)){
+ std::cout << "Error in shmmultiset->insert(shmmultiset->lower_bound(move_me2), move(move_me2))" << std::endl;
             return 1;
          }
+ }
       }
 
       //Compare count with std containers
@@ -317,10 +393,14 @@
          IntType move_me2(i);
          shmmultiset->insert(move(move_me2));
          IntType count_me(i);
- if(shmset->count(count_me) != typename MyShmMultiSet::size_type(1))
+ if(shmset->count(count_me) != typename MyShmMultiSet::size_type(1)){
+ std::cout << "Error in shmset->count(count_me)" << std::endl;
             return 1;
- if(shmmultiset->count(count_me) != typename MyShmMultiSet::size_type(j+1))
+ }
+ if(shmmultiset->count(count_me) != typename MyShmMultiSet::size_type(j+1)){
+ std::cout << "Error in shmmultiset->count(count_me)" << std::endl;
             return 1;
+ }
       }
 
       segment.template destroy<MyShmSet>("MyShmSet");
@@ -329,8 +409,10 @@
       delete stdmultiset;
       segment.shrink_to_fit_indexes();
 
- if(!segment.all_memory_deallocated())
+ if(!segment.all_memory_deallocated()){
+ std::cout << "Error in segment.all_memory_deallocated()" << std::endl;
          return 1;
+ }
    }
    catch(...){
       shared_memory_object::remove(shMemName);
@@ -349,7 +431,7 @@
 {
    typedef typename MyShmSet::value_type IntType;
    const int memsize = 65536;
- const char *const shMemName = test::get_compiler_name();
+ const char *const shMemName = test::get_process_id_name();
    const int max = 100;
 
    try{
@@ -389,22 +471,26 @@
          //Now, test copy constructor
          MyShmSet shmsetcopy(*shmset);
          MyStdSet stdsetcopy(*stdset);
- MyShmMultiSet shmmsetcopy(*shmmultiset);
- MyStdMultiSet stdmsetcopy(*stdmultiset);
 
          if(!CheckEqualContainers(&shmsetcopy, &stdsetcopy))
             return 1;
+
+ MyShmMultiSet shmmsetcopy(*shmmultiset);
+ MyStdMultiSet stdmsetcopy(*stdmultiset);
+
          if(!CheckEqualContainers(&shmmsetcopy, &stdmsetcopy))
             return 1;
 
          //And now assignment
          shmsetcopy = *shmset;
          stdsetcopy = *stdset;
+
+ if(!CheckEqualContainers(&shmsetcopy, &stdsetcopy))
+ return 1;
+
          shmmsetcopy = *shmmultiset;
          stdmsetcopy = *stdmultiset;
          
- if(!CheckEqualContainers(&shmsetcopy, &stdsetcopy))
- return 1;
          if(!CheckEqualContainers(&shmmsetcopy, &stdmsetcopy))
             return 1;
       }

Modified: branches/hash/libs/interprocess/test/shared_memory_mapping_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/shared_memory_mapping_test.cpp (original)
+++ branches/hash/libs/interprocess/test/shared_memory_mapping_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -14,7 +14,7 @@
 #include <boost/interprocess/shared_memory_object.hpp>
 #include <boost/interprocess/mapped_region.hpp>
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 
@@ -24,16 +24,16 @@
       const std::size_t FileSize = 99999*2;
       {
          //Remove shared memory
- shared_memory_object::remove(test::get_compiler_name());
+ shared_memory_object::remove(test::get_process_id_name());
 
          //Create shared memory and file mapping
- shared_memory_object mapping(create_only, test::get_compiler_name(), read_write);
+ shared_memory_object mapping(create_only, test::get_process_id_name(), read_write);
          mapping.truncate(FileSize);
       }
 
       {
          //Create a file mapping
- shared_memory_object mapping(open_only, test::get_compiler_name(), read_write);
+ shared_memory_object mapping(open_only, test::get_process_id_name(), read_write);
 
          //Create two mapped regions, one half of the file each
          mapped_region region (mapping
@@ -67,7 +67,7 @@
       //See if the pattern is correct in the file using two mapped regions
       {
          //Create a file mapping
- shared_memory_object mapping(open_only, test::get_compiler_name(), read_write);
+ shared_memory_object mapping(open_only, test::get_process_id_name(), read_write);
          mapped_region region(mapping, read_write, 0, FileSize/2, 0);
          mapped_region region2(mapping, read_write, FileSize/2, 0/*FileSize - FileSize/2*/, 0);
 
@@ -97,7 +97,7 @@
       //Now check the pattern mapping a single read only mapped_region
       {
          //Create a file mapping
- shared_memory_object mapping(open_only, test::get_compiler_name(), read_only);
+ shared_memory_object mapping(open_only, test::get_process_id_name(), read_only);
 
          //Create a single regions, mapping all the file
          mapped_region region (mapping
@@ -115,10 +115,10 @@
       }
    }
    catch(std::exception &exc){
- shared_memory_object::remove(test::get_compiler_name());
+ shared_memory_object::remove(test::get_process_id_name());
       std::cout << "Unhandled exception: " << exc.what() << std::endl;
    }
- shared_memory_object::remove(test::get_compiler_name());
+ shared_memory_object::remove(test::get_process_id_name());
    return 0;
 }
 

Modified: branches/hash/libs/interprocess/test/shared_memory_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/shared_memory_test.cpp (original)
+++ branches/hash/libs/interprocess/test/shared_memory_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -16,12 +16,12 @@
 #include <cstring> //for strcmp, memset
 #include <iostream> //for cout
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 
 static const std::size_t ShmSize = 1000;
-static const char * ShmName = test::get_compiler_name();
+static const char * ShmName = test::get_process_id_name();
 
 struct eraser
 {

Modified: branches/hash/libs/interprocess/test/shared_ptr_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/shared_ptr_test.cpp (original)
+++ branches/hash/libs/interprocess/test/shared_ptr_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -1,16 +1,14 @@
 //////////////////////////////////////////////////////////////////////////////
 //
 // (C) Copyright Peter Dimov 2002-2005.
-// (C) Copyright Ion Gaztanaga 2006. Distributed under the Boost
-// Software License, Version 1.0. (See accompanying file
-// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+// (C) Copyright Ion Gaztanaga 2006-2007.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
 //
 // See http://www.boost.org/libs/interprocess for documentation.
 //
 //////////////////////////////////////////////////////////////////////////////
-#ifdef _MSC_VER
-#pragma warning (disable : 4503)
-#endif
 
 #include <boost/interprocess/detail/config_begin.hpp>
 #include <boost/interprocess/offset_ptr.hpp>
@@ -22,10 +20,11 @@
 #include <boost/interprocess/containers/string.hpp>
 #include <boost/interprocess/containers/vector.hpp>
 #include <boost/interprocess/detail/utilities.hpp>
+#include <boost/interprocess/smart_ptr/deleter.hpp>
 #include <boost/interprocess/smart_ptr/scoped_ptr.hpp>
 #include <boost/detail/lightweight_test.hpp>
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 
@@ -53,12 +52,12 @@
    typedef shared_ptr<base_class, base_class_allocator, base_deleter_t> base_shared_ptr;
    typedef weak_ptr<base_class, base_class_allocator, base_deleter_t> base_weak_ptr;
 
- std::string compiler_name;
- test::get_compiler_name(compiler_name);
+ std::string process_name;
+ test::get_process_id_name(process_name);
 
- shared_memory_object::remove(compiler_name.c_str());
+ shared_memory_object::remove(process_name.c_str());
    {
- managed_shared_memory shmem(create_only, compiler_name.c_str(), 10000);
+ managed_shared_memory shmem(create_only, process_name.c_str(), 10000);
 
       {
          base_shared_ptr s_ptr(base_shared_ptr::pointer(0),
@@ -90,7 +89,7 @@
          //}
       }
    }
- shared_memory_object::remove(compiler_name.c_str());
+ shared_memory_object::remove(process_name.c_str());
    return 0;
 }
 
@@ -134,13 +133,13 @@
    typedef vector<string_weak_ptr_t, string_weak_ptr_allocator_t>
       string_weak_ptr_vector_t;
 
- std::string compiler_name;
- test::get_compiler_name(compiler_name);
+ std::string process_name;
+ test::get_process_id_name(process_name);
 
    //A shared memory managed memory classes
- shared_memory_object::remove(compiler_name.c_str());
+ shared_memory_object::remove(process_name.c_str());
    {
- managed_shared_memory shmem(create_only, compiler_name.c_str(), 20000);
+ managed_shared_memory shmem(create_only, process_name.c_str(), 20000);
 
       {
          const int NumElements = 100;
@@ -256,7 +255,7 @@
          string_weak_ptr.reset();
       }
    }
- shared_memory_object::remove(compiler_name.c_str());
+ shared_memory_object::remove(process_name.c_str());
    return 0;
 }
 //
@@ -416,12 +415,12 @@
 
    typedef weak_ptr<Y, v_allocator_t, y_deleter_t> y_weak_ptr;
 
- std::string compiler_name;
- test::get_compiler_name(compiler_name);
+ std::string process_name;
+ test::get_process_id_name(process_name);
 
- shared_memory_object::remove(compiler_name.c_str());
+ shared_memory_object::remove(process_name.c_str());
    {
- managed_shared_memory shmem(create_only, compiler_name.c_str(), 10000);
+ managed_shared_memory shmem(create_only, process_name.c_str(), 10000);
       {
          v_allocator_t v_allocator (shmem.get_segment_manager());
          x_deleter_t x_deleter (shmem.get_segment_manager());
@@ -534,7 +533,7 @@
 
       BOOST_TEST(cnt == 0);
    }
- shared_memory_object::remove(compiler_name.c_str());
+ shared_memory_object::remove(process_name.c_str());
    return boost::report_errors();
 }
 

Modified: branches/hash/libs/interprocess/test/string_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/string_test.cpp (original)
+++ branches/hash/libs/interprocess/test/string_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -26,7 +26,7 @@
 #include "expand_bwd_test_allocator.hpp"
 #include "expand_bwd_test_template.hpp"
 #include "allocator_v1.hpp"
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 
@@ -79,16 +79,16 @@
 
    const int MaxSize = 100;
 
- std::string compiler_name;
- test::get_compiler_name(compiler_name);
+ std::string process_name;
+ test::get_process_id_name(process_name);
 
    //Create shared memory
- shared_memory_object::remove(compiler_name.c_str());
+ shared_memory_object::remove(process_name.c_str());
    {
       managed_shared_memory segment
             (create_only,
- compiler_name.c_str(),//segment name
- 65536); //segment size in bytes
+ process_name.c_str(),//segment name
+ 65536); //segment size in bytes
       
       ShmemAllocatorChar shmallocator (segment.get_segment_manager());
 
@@ -264,7 +264,7 @@
       segment.destroy_ptr(shmStringVect);
       delete stdStringVect;
    }
- shared_memory_object::remove(compiler_name.c_str());
+ shared_memory_object::remove(process_name.c_str());
    return 0;
 }
 

Modified: branches/hash/libs/interprocess/test/tree_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/tree_test.cpp (original)
+++ branches/hash/libs/interprocess/test/tree_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -61,7 +61,7 @@
 //Customize managed_shared_memory class
 typedef basic_managed_shared_memory
    <char,
- simple_seq_fit<mutex_family>,
+ simple_seq_fit<mutex_family, void*>,
     map_index
> my_managed_shared_memory;
 

Modified: branches/hash/libs/interprocess/test/unique_ptr_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/unique_ptr_test.cpp (original)
+++ branches/hash/libs/interprocess/test/unique_ptr_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -7,9 +7,6 @@
 // See http://www.boost.org/libs/interprocess for documentation.
 //
 //////////////////////////////////////////////////////////////////////////////
-#ifdef _MSC_VER
-#pragma warning (disable : 4503)
-#endif
 
 #include <boost/interprocess/detail/config_begin.hpp>
 #include <boost/interprocess/offset_ptr.hpp>
@@ -20,10 +17,10 @@
 #include <boost/interprocess/containers/set.hpp>
 #include <boost/interprocess/containers/vector.hpp>
 #include <boost/interprocess/containers/string.hpp>
-#include <boost/interprocess/containers/string.hpp>
+#include <boost/interprocess/smart_ptr/deleter.hpp>
 #include <stdio.h>
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 
@@ -34,24 +31,8 @@
    {}
 };
 
-//Deleter. Takes a pointer to the segment manager which
-//has a function to delete the object from the shared memory
-//segment.
-struct MyDeleter
-{
- typedef offset_ptr<MyClass> pointer;
-
- MyDeleter(managed_shared_memory::segment_manager *mngr)
- : m_mngr(mngr)
- {}
-
- void operator()(pointer ptr)
- { m_mngr->destroy_ptr(ptr.get()); }
-
- offset_ptr<managed_shared_memory::segment_manager> m_mngr;
-};
-
-typedef unique_ptr<MyClass, MyDeleter> my_unique_ptr_class;
+typedef deleter<MyClass, managed_shared_memory::segment_manager> my_deleter_type;
+typedef unique_ptr<MyClass, my_deleter_type> my_unique_ptr_class;
 typedef set <my_unique_ptr_class
             ,std::less<my_unique_ptr_class>
             ,allocator <my_unique_ptr_class
@@ -70,26 +51,26 @@
 
 int main()
 {
- std::string compiler_name;
- test::get_compiler_name(compiler_name);
+ std::string process_name;
+ test::get_process_id_name(process_name);
 
    //Create managed shared memory
- shared_memory_object::remove(compiler_name.c_str());
+ shared_memory_object::remove(process_name.c_str());
    {
- managed_shared_memory segment(create_only, compiler_name.c_str(), 10000);
-
+ managed_shared_memory segment(create_only, process_name.c_str(), 10000);
+ my_deleter_type my_deleter(segment.get_segment_manager());
       //Create unique_ptr using dynamic allocation
       my_unique_ptr_class my_ptr (segment.construct<MyClass>(anonymous_instance)()
- ,segment.get_segment_manager());
+ ,my_deleter);
       my_unique_ptr_class my_ptr2(segment.construct<MyClass>(anonymous_instance)()
- ,segment.get_segment_manager());
+ ,my_deleter);
 
       //Backup relative pointers to future tests
       offset_ptr<MyClass> ptr1 = my_ptr.get();
       offset_ptr<MyClass> ptr2 = my_ptr2.get();
 
       //Test some copy constructors
- my_unique_ptr_class my_ptr3(0, segment.get_segment_manager());
+ my_unique_ptr_class my_ptr3(0, my_deleter);
       my_unique_ptr_class my_ptr4(move(my_ptr3));
 
       //Construct a list and fill
@@ -134,9 +115,6 @@
          assert(set.rbegin()->get() == ptr1);
          assert(set.begin()->get() == ptr2);
       }
- //MySet set2(move(set));
- //set2.swap(move(MySet(set_less_t(), segment.get_segment_manager())));
- //set.swap(move(MySet(set_less_t(), segment.get_segment_manager())));
 
       //Now with vector
       MyVector vector(segment.get_segment_manager());
@@ -162,8 +140,11 @@
 
       assert(vector.begin()->get() == ptr1);
       assert(vector.rbegin()->get() == ptr2);
+
+ my_unique_ptr_class a(0, my_deleter), b(0, my_deleter);
+ a = move(b);
    }
- shared_memory_object::remove(compiler_name.c_str());
+ shared_memory_object::remove(process_name.c_str());
    return 0;
 }
 

Modified: branches/hash/libs/interprocess/test/vector_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/vector_test.cpp (original)
+++ branches/hash/libs/interprocess/test/vector_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -31,7 +31,7 @@
 #include "expand_bwd_test_template.hpp"
 #include "dummy_test_allocator.hpp"
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 
@@ -101,11 +101,11 @@
    typedef vector<IntType, shmem_allocator_t> MyShmVector;
    typedef std::vector<int> MyStdVector;
 
- std::string compiler_name;
- test::get_compiler_name(compiler_name);
+ std::string process_name;
+ test::get_process_id_name(process_name);
 
    const int Memsize = 65536;
- const char *const shMemName = compiler_name.c_str();
+ const char *const shMemName = process_name.c_str();
    const int max = 100;
 
    {
@@ -240,21 +240,33 @@
 bool test_expand_bwd()
 {
    //Now test all back insertion possibilities
- typedef test::expand_bwd_test_allocator<test::int_holder>
+
+ //First raw ints
+ typedef test::expand_bwd_test_allocator<int>
       int_allocator_type;
- typedef vector<test::int_holder, int_allocator_type>
+ typedef vector<int, int_allocator_type>
       int_vector;
 
    if(!test::test_all_expand_bwd<int_vector>())
       return false;
 
+ //Now user defined wrapped int
+ typedef test::expand_bwd_test_allocator<test::int_holder>
+ int_holder_allocator_type;
+ typedef vector<test::int_holder, int_holder_allocator_type>
+ int_holder_vector;
+
+ if(!test::test_all_expand_bwd<int_holder_vector>())
+ return false;
+
+ //Now user defined bigger wrapped int
    typedef test::expand_bwd_test_allocator<test::triple_int_holder>
- triple_allocator_type;
+ triple_int_holder_allocator_type;
 
- typedef vector<test::triple_int_holder, triple_allocator_type>
- triple_int_vector;
+ typedef vector<test::triple_int_holder, triple_int_holder_allocator_type>
+ triple_int_holder_vector;
 
- if(!test::test_all_expand_bwd<triple_int_vector>())
+ if(!test::test_all_expand_bwd<triple_int_holder_vector>())
       return false;
 
    return true;

Modified: branches/hash/libs/interprocess/test/windows_shared_memory_mapping_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/windows_shared_memory_mapping_test.cpp (original)
+++ branches/hash/libs/interprocess/test/windows_shared_memory_mapping_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -17,23 +17,23 @@
 #include <boost/interprocess/windows_shared_memory.hpp>
 #include <boost/interprocess/mapped_region.hpp>
 #include <string>
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 
 int main ()
 {
- std::string compiler_name;
- test::get_compiler_name(compiler_name);
+ std::string process_name;
+ test::get_process_id_name(process_name);
 
    try{
       const std::size_t FileSize = 99999*2;
       //Create shared memory and file mapping
- windows_shared_memory mapping(create_only, compiler_name.c_str(), read_write, FileSize);
+ windows_shared_memory mapping(create_only, process_name.c_str(), read_write, FileSize);
 
       {
          //Create a file mapping
- windows_shared_memory mapping(open_only, compiler_name.c_str(), read_write);
+ windows_shared_memory mapping(open_only, process_name.c_str(), read_write);
 
          //Create two mapped regions, one half of the file each
          mapped_region region (mapping
@@ -67,7 +67,7 @@
       //See if the pattern is correct in the file using two mapped regions
       {
          //Create a file mapping
- windows_shared_memory mapping(open_only, compiler_name.c_str(), read_write);
+ windows_shared_memory mapping(open_only, process_name.c_str(), read_write);
          mapped_region region(mapping, read_write, 0, FileSize/2, 0);
          mapped_region region2(mapping, read_write, FileSize/2, 0/*FileSize - FileSize/2*/, 0);
 
@@ -97,7 +97,7 @@
       //Now check the pattern mapping a single read only mapped_region
       {
          //Create a file mapping
- windows_shared_memory mapping(open_only, compiler_name.c_str(), read_only);
+ windows_shared_memory mapping(open_only, process_name.c_str(), read_only);
 
          //Create a single regions, mapping all the file
          mapped_region region (mapping

Modified: branches/hash/libs/interprocess/test/windows_shared_memory_test.cpp
==============================================================================
--- branches/hash/libs/interprocess/test/windows_shared_memory_test.cpp (original)
+++ branches/hash/libs/interprocess/test/windows_shared_memory_test.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -20,15 +20,15 @@
 #include <cstring> //for strcmp, memset
 #include <iostream> //for cout
 #include <string> //for string
-#include "get_compiler_name.hpp"
+#include "get_process_id_name.hpp"
 
 using namespace boost::interprocess;
 
 static const char *name_initialization_routine()
 {
- static std::string compiler_name;
- test::get_compiler_name(compiler_name);
- return compiler_name.c_str();
+ static std::string process_name;
+ test::get_process_id_name(process_name);
+ return process_name.c_str();
 }
 
 static const std::size_t ShmSize = 1000;

Modified: branches/hash/libs/program_options/src/options_description.cpp
==============================================================================
--- branches/hash/libs/program_options/src/options_description.cpp (original)
+++ branches/hash/libs/program_options/src/options_description.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -254,7 +254,7 @@
         return m_options;
     }
 
- const option_description*
+ const option_description*
     options_description::find_nothrow(const std::string& name,
                                       bool approx) const
     {
@@ -279,10 +279,10 @@
             //
             // For now, we don't check the situation when there are
             // two full matches.
-
+
             if (r == option_description::full_match)
             {
- return m_options[i].get();
+ return m_options[i].get();
             }
 
             found = m_options[i];
@@ -293,8 +293,8 @@
         if (approximate_matches.size() > 1)
             boost::throw_exception(
                 ambiguous_option(name, approximate_matches));
- else
- return found.get();
+
+ return found.get();
     }
 
     BOOST_PROGRAM_OPTIONS_DECL

Modified: branches/hash/libs/regex/doc/html/boost_regex/background_information/examples.html
==============================================================================
--- branches/hash/libs/regex/doc/html/boost_regex/background_information/examples.html (original)
+++ branches/hash/libs/regex/doc/html/boost_regex/background_information/examples.html 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -27,7 +27,7 @@
 <a name="boost_regex.background_information.examples"></a><a href="examples.html" title="Test and Example Programs"> Test and
       Example Programs</a></h3></div></div></div>
 <a name="boost_regex.background_information.examples.test_programs"></a><h5>
-<a name="id657630"></a>
+<a name="id657635"></a>
         <a href="examples.html#boost_regex.background_information.examples.test_programs">Test
         Programs</a>
       </h5>
@@ -97,7 +97,7 @@
         Files: captures_test.cpp.
       </p>
 <a name="boost_regex.background_information.examples.example_programs"></a><h5>
-<a name="id657847"></a>
+<a name="id657851"></a>
         <a href="examples.html#boost_regex.background_information.examples.example_programs">Example
         programs</a>
       </h5>
@@ -123,7 +123,7 @@
         Files: regex_timer.cpp.
       </p>
 <a name="boost_regex.background_information.examples.code_snippets"></a><h5>
-<a name="id657930"></a>
+<a name="id657934"></a>
         <a href="examples.html#boost_regex.background_information.examples.code_snippets">Code
         snippets</a>
       </h5>

Modified: branches/hash/libs/regex/doc/html/boost_regex/background_information/history.html
==============================================================================
--- branches/hash/libs/regex/doc/html/boost_regex/background_information/history.html (original)
+++ branches/hash/libs/regex/doc/html/boost_regex/background_information/history.html 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -25,7 +25,7 @@
 <div class="titlepage"><div><div><h3 class="title">
 <a name="boost_regex.background_information.history"></a> History</h3></div></div></div>
 <a name="boost_regex.background_information.history.boost_1_34"></a><h5>
-<a name="id660133"></a>
+<a name="id660132"></a>
         <a href="history.html#boost_regex.background_information.history.boost_1_34">Boost
         1.34</a>
       </h5>
@@ -48,7 +48,7 @@
         </li>
 </ul></div>
 <a name="boost_regex.background_information.history.boost_1_33_1"></a><h5>
-<a name="id660186"></a>
+<a name="id660185"></a>
         <a href="history.html#boost_regex.background_information.history.boost_1_33_1">Boost
         1.33.1</a>
       </h5>
@@ -173,7 +173,7 @@
         </li>
 </ul></div>
 <a name="boost_regex.background_information.history.boost_1_32_1"></a><h5>
-<a name="id660425"></a>
+<a name="id660424"></a>
         <a href="history.html#boost_regex.background_information.history.boost_1_32_1">Boost
         1.32.1</a>
       </h5>
@@ -181,7 +181,7 @@
           Fixed bug in partial matches of bounded repeats of '.'.
         </li></ul></div>
 <a name="boost_regex.background_information.history.boost_1_31_0"></a><h5>
-<a name="id660460"></a>
+<a name="id660459"></a>
         <a href="history.html#boost_regex.background_information.history.boost_1_31_0">Boost
         1.31.0</a>
       </h5>

Modified: branches/hash/libs/regex/doc/html/boost_regex/background_information/standards.html
==============================================================================
--- branches/hash/libs/regex/doc/html/boost_regex/background_information/standards.html (original)
+++ branches/hash/libs/regex/doc/html/boost_regex/background_information/standards.html 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -27,7 +27,7 @@
 <a name="boost_regex.background_information.standards"></a><a href="standards.html" title="Standards Conformance"> Standards
       Conformance</a></h3></div></div></div>
 <a name="boost_regex.background_information.standards.c__"></a><h5>
-<a name="id658935"></a>
+<a name="id658934"></a>
         <a href="standards.html#boost_regex.background_information.standards.c__">C++</a>
       </h5>
 <p>
@@ -35,7 +35,7 @@
         report on C++ Library Extensions</a>.
       </p>
 <a name="boost_regex.background_information.standards.ecmascript___javascript"></a><h5>
-<a name="id658975"></a>
+<a name="id658974"></a>
         <a href="standards.html#boost_regex.background_information.standards.ecmascript___javascript">ECMAScript
         / JavaScript</a>
       </h5>
@@ -81,7 +81,7 @@
         a custom traits class.
       </p>
 <a name="boost_regex.background_information.standards.unicode"></a><h5>
-<a name="id659102"></a>
+<a name="id659101"></a>
         <a href="standards.html#boost_regex.background_information.standards.unicode">Unicode</a>
       </h5>
 <p>

Modified: branches/hash/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html
==============================================================================
--- branches/hash/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html (original)
+++ branches/hash/libs/regex/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -80,7 +80,7 @@
    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">smatch</span> <span class="identifier">what</span><span class="special">;</span>
    <span class="keyword">if</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">u32regex_match</span><span class="special">(</span><span class="identifier">path</span><span class="special">,</span> <span class="identifier">what</span><span class="special">,</span> <span class="identifier">r</span><span class="special">))</span>
    <span class="special">{</span>
- <span class="comment">// extract $1 as a CString:
+ <span class="comment">// extract $1 as a std::string:
 </span> <span class="keyword">return</span> <span class="identifier">what</span><span class="special">.</span><span class="identifier">str</span><span class="special">(</span><span class="number">1</span><span class="special">);</span>
    <span class="special">}</span>
    <span class="keyword">else</span>
@@ -120,7 +120,7 @@
    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">u16match</span> <span class="identifier">what</span><span class="special">;</span>
    <span class="keyword">if</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">u32regex_search</span><span class="special">(</span><span class="identifier">text</span><span class="special">,</span> <span class="identifier">what</span><span class="special">,</span> <span class="identifier">r</span><span class="special">))</span>
    <span class="special">{</span>
- <span class="comment">// extract $0 as a CString:
+ <span class="comment">// extract $0 as a UnicodeString:
 </span> <span class="keyword">return</span> <span class="identifier">UnicodeString</span><span class="special">(</span><span class="identifier">what</span><span class="special">[</span><span class="number">0</span><span class="special">].</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">what</span><span class="special">.</span><span class="identifier">length</span><span class="special">(</span><span class="number">0</span><span class="special">));</span>
    <span class="special">}</span>
    <span class="keyword">else</span>
@@ -130,7 +130,7 @@
 <span class="special">}</span>
 </pre>
 <a name="boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_replace"></a><h5>
-<a name="id616763"></a>
+<a name="id616762"></a>
             <a href="unicode_algo.html#boost_regex.ref.non_std_strings.icu.unicode_algo.u32regex_replace">u32regex_replace</a>
           </h5>
 <p>

Modified: branches/hash/libs/regex/doc/html/index.html
==============================================================================
--- branches/hash/libs/regex/doc/html/index.html (original)
+++ branches/hash/libs/regex/doc/html/index.html 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -202,7 +202,7 @@
   </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: August 13, 2007 at 17:46:28 GMT</small></p></td>
+<td align="left"><p><small>Last revised: August 25, 2007 at 08:47:36 GMT</small></p></td>
 <td align="right"><small></small></td>
 </tr></table>
 <hr>

Modified: branches/hash/libs/regex/doc/icu_strings.qbk
==============================================================================
--- branches/hash/libs/regex/doc/icu_strings.qbk (original)
+++ branches/hash/libs/regex/doc/icu_strings.qbk 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -138,7 +138,7 @@
       boost::smatch what;
       if(boost::u32regex_match(path, what, r))
       {
- // extract $1 as a CString:
+ // extract $1 as a std::string:
          return what.str(1);
       }
       else
@@ -172,7 +172,7 @@
       boost::u16match what;
       if(boost::u32regex_search(text, what, r))
       {
- // extract $0 as a CString:
+ // extract $0 as a UnicodeString:
          return UnicodeString(what[0].first, what.length(0));
       }
       else

Modified: branches/hash/libs/regex/example/snippets/icu_example.cpp
==============================================================================
--- branches/hash/libs/regex/example/snippets/icu_example.cpp (original)
+++ branches/hash/libs/regex/example/snippets/icu_example.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -43,7 +43,7 @@
    boost::smatch what;
    if(boost::u32regex_match(path, what, r))
    {
- // extract $1 as a CString:
+ // extract $1 as a std::string:
       return what.str(1);
    }
    else
@@ -61,7 +61,7 @@
    boost::u16match what;
    if(boost::u32regex_search(text, what, r))
    {
- // extract $0 as a CString:
+ // extract $0 as a UnicodeString:
       return UnicodeString(what[0].first, what.length(0));
    }
    else

Modified: branches/hash/more/formal_review_schedule.html
==============================================================================
--- branches/hash/more/formal_review_schedule.html (original)
+++ branches/hash/more/formal_review_schedule.html 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -102,7 +102,7 @@
     <td>Jody Hagins</td>
     <td>August 13, 2007 - August 22, 2007-</td>
     <td><a href="http://lists.boost.org/boost-announce/2007/08/0139.php">
- Ongoing</a></td>
+ Pending</a></td>
   </tr>
 
   <tr>

Modified: branches/hash/tools/build/v2/build/virtual-target.jam
==============================================================================
--- branches/hash/tools/build/v2/build/virtual-target.jam (original)
+++ branches/hash/tools/build/v2/build/virtual-target.jam 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -378,40 +378,18 @@
                         
             return l$(location-grist) ;
         }
- }
-
- # Given the target name specified in constructor, returns the
- # name which should be really used, by looking at the <tag> properties.
- # The tag properties come in two flavour:
- # - <tag>value,
- # - <tag>@rule-name
- # In the first case, value is just added to name
- # In the second case, the specified rule is called with specified name,
- # target type and properties and should return the new name.
- # If not <tag> property is specified, or the rule specified by
- # <tag> returns nothing, returns the result of calling
- # virtual-target.add-suffix
- rule _adjust-name ( specified-name )
+ }
+
+ # Applies the <tag> feature to the specified name,
+ # and returns the new name. If there no <tag>
+ # or <tag> rule retuend nothing, return empty string.
+ # 'ps' is the property set to be used when calling
+ # the 'tag' rule. Typically, that should be
+ # obtained from 'tag-properties'.
+ rule apply-tag ( specified-name : ps )
     {
- local ps ;
- if $(self.action)
- {
- ps = [ $(self.action).properties ] ;
- }
- else
- {
- ps = [ property-set.empty ] ;
- }
-
- #~ We add ourselves to the properties so that any tag rule can get
- #~ more direct information about the target than just that available
- #~ through the properties. This is useful in implementing
- #~ name changes based on the sources of the target. For example to
- #~ make unique names of object files based on the source file.
- #~ --grafik
- ps = [ property-set.create [ $(ps).raw ] <target>$(__name__) ] ;
-
         local tag = [ $(ps).get <tag> ] ;
+ local result ;
 
         if $(tag)
         {
@@ -423,7 +401,7 @@
                     errors.error "<tag>@rulename is present but is not the only <tag> feature" ;
                 }
                 
- self.name = [ indirect.call $(rule-name) $(specified-name) :
+ result = [ indirect.call $(rule-name) $(specified-name) :
                   $(self.type) : $(ps) ] ;
             }
             else
@@ -431,14 +409,57 @@
                 errors.error
                   "The value of the <tag> feature must be '@rule-nane'" ;
             }
+ }
+ return $(result) ;
+ }
+
+ rule tag-properties ( )
+ {
+ local ps ;
+ if $(self.action)
+ {
+ ps = [ $(self.action).properties ] ;
+ }
+ else
+ {
+ ps = [ property-set.empty ] ;
         }
+
         
- # If there's no tag or the tag rule returned nothing.
- if ! $(tag) || ! $(self.name)
+ #~ We add ourselves to the properties so that any tag rule can get
+ #~ more direct information about the target than just that available
+ #~ through the properties. This is useful in implementing
+ #~ name changes based on the sources of the target. For example to
+ #~ make unique names of object files based on the source file.
+ #~ --grafik
+ ps = [ property-set.create [ $(ps).raw ] <target>$(__name__) ] ;
+
+ return $(ps) ;
+ }
+
+ # Given the target name specified in constructor, returns the
+ # name which should be really used, by looking at the <tag> properties.
+ # The tag properties come in two flavour:
+ # - <tag>value,
+ # - <tag>@rule-name
+ # In the first case, value is just added to name
+ # In the second case, the specified rule is called with specified name,
+ # target type and properties and should return the new name.
+ # If not <tag> property is specified, or the rule specified by
+ # <tag> returns nothing, returns the result of calling
+ # virtual-target.add-suffix
+ rule _adjust-name ( specified-name )
+ {
+ local ps = [ tag-properties ] ;
+
+ self.name = [ apply-tag $(specified-name) : $(ps) ] ;
+ # If tag rule does not exists or returned nothing,
+ # just add prefix/suffix.
+ if ! $(self.name)
         {
             self.name = [ virtual-target.add-prefix-and-suffix
                 $(specified-name) : $(self.type) : $(ps) ] ;
- }
+ }
     }
 
     rule actualize-no-scanner ( )

Modified: branches/hash/tools/build/v2/nightly.sh
==============================================================================
--- branches/hash/tools/build/v2/nightly.sh (original)
+++ branches/hash/tools/build/v2/nightly.sh 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -18,7 +18,7 @@
 cd /tmp
 rm -rf boost-build
 echo "Checking out sources"
-cvs -d :ext:vladimir_prus_at_[hidden]:/cvsroot/boost co -P -d boost-build boost/tools > /tmp/boost_build_checkout_log
+svn co http://svn.boost.org/svn/boost/trunk/tools boost-build > /tmp/boost_build_checkout_log
 mv /tmp/boost_build_checkout_log boost-build/checkout-log
 cd boost-build/build/v2
 echo "Building packages and uploading docs"

Modified: branches/hash/tools/build/v2/roll.sh
==============================================================================
--- branches/hash/tools/build/v2/roll.sh (original)
+++ branches/hash/tools/build/v2/roll.sh 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -7,18 +7,23 @@
 # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 
 set -e
-# Do some renames/rearrangments
 
+# Do some renames/rearrangments
 cp -r ../v2 ../boost-build
 # Grab jam_src
 cp -r ../../jam/src ../boost-build/jam_src
 cd ../boost-build
 
+# Capture the version
+revision=`svnversion ..`
+echo "SVN Revision $revision" >> timestamp.txt
+date >> timestamp.txt
+
 # This one is not fully finished
 rm -rf example/versioned
 
 # Remove unnecessary top-level files
-find . -maxdepth 1 -type f | egrep -v "roll.sh|bootstrap.jam|build-system.jam|boost_build_v2.html|boost.png|index.html|hacking.txt|site-config.jam|user-config.jam" | xargs rm -f
+find . -maxdepth 1 -type f | egrep -v "timestamp.txt|roll.sh|bootstrap.jam|build-system.jam|boost_build_v2.html|boost.png|index.html|hacking.txt|site-config.jam|user-config.jam" | xargs rm -f
 
 # Prepare some more files.
 echo -e "boost-build kernel ;\n" > boost-build.jam
@@ -43,10 +48,9 @@
 perl -pi -e 's%../../../doc/html/bbv2.installation.html%doc/html/bbv2.installation.html%' index.html
 
 # Make packages
-find . -name CVS | xargs rm -rf
+find . -name ".svn" | xargs rm -rf
 rm roll.sh
 chmod a+x jam_src/build.bat
-date >> timestamp.txt
 cd .. && zip -r boost-build.zip boost-build && tar --bzip2 -cf boost-build.tar.bz2 boost-build
 cd boost-build
 

Modified: branches/hash/tools/build/v2/test/BoostBuild.py
==============================================================================
--- branches/hash/tools/build/v2/test/BoostBuild.py (original)
+++ branches/hash/tools/build/v2/test/BoostBuild.py 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -64,9 +64,10 @@
 features = [ 'threading-multi' ]
 
 lib_prefix = 1
+dll_prefix = 1
 if windows:
- lib_prefix = 0
-
+ #~ lib_prefix = 0
+ dll_prefix = 0
     
     
 #
@@ -288,8 +289,10 @@
         for name in names:
             n = self.native_file_name(name)
             n = glob.glob(n)
+ if n: n = n[0]
+ if not n:
+ n = self.glob_file(string.replace(name, "$toolset", self.toolset+"*"))
             if n:
- n = n[0]
                 if os.path.isdir(n):
                     shutil.rmtree(n, ignore_errors=0)
                 else:
@@ -410,7 +413,9 @@
                     result = self.native_file_name(f)
                     break
         if not result:
- result = glob.glob(self.native_file_name(name))[0]
+ result = glob.glob(self.native_file_name(name))
+ if result:
+ result = result[0]
         return result
 
     def read(self, name):
@@ -418,7 +423,7 @@
             if self.toolset:
                 name = string.replace(name, "$toolset", self.toolset+"*")
             name = self.glob_file(name)
- return open(name, "rb").read()
+ return open(name, "rU").read()
         except:
             self.fail_test(1)
             return ''
@@ -681,11 +686,16 @@
         pos = string.rfind(name, ".")
         if pos != -1:
             suffix = name[pos:]
- if suffix in [".lib", ".dll"]:
+ if suffix == ".lib":
                 (head, tail) = os.path.split(name)
                 if lib_prefix:
                     tail = "lib" + tail
                     result = os.path.join(head, tail)
+ elif suffix == ".dll":
+ (head, tail) = os.path.split(name)
+ if dll_prefix:
+ tail = "lib" + tail
+ result = os.path.join(head, tail)
         return result
                 
     def adjust_suffix(self, name):

Modified: branches/hash/tools/build/v2/test/regression.py
==============================================================================
--- branches/hash/tools/build/v2/test/regression.py (original)
+++ branches/hash/tools/build/v2/test/regression.py 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -74,7 +74,7 @@
 
 # Make sure args are handled.
 t.expect_content("bin/r.test/$toolset/debug/r.output",
- "foo\nbar\n\nEXIT STATUS: 0\n",True)
+ "foo\nbar\n*\nEXIT STATUS: 0*\n",True)
 
 # Test that input file is handled as well.
 t.write("r.cpp", """

Modified: branches/hash/tools/build/v2/tools/builtin.jam
==============================================================================
--- branches/hash/tools/build/v2/tools/builtin.jam (original)
+++ branches/hash/tools/build/v2/tools/builtin.jam 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -333,31 +333,28 @@
     rule __init__ ( name
         : project
         : shared ?
- : real-name ?
         : search *
         : action
     )
     {
- abstract-file-target.__init__ $(name) : SEARCHED_LIB : $(project)
- : $(action) ;
+ abstract-file-target.__init__ $(name) exact : SEARCHED_LIB : $(project)
+ : $(action) : ;
+
+ local rn = [ apply-tag $(name) : [ tag-properties ] ] ;
+ if $(rn)
+ {
+ self.name = $(rn) ;
+ }
         
         self.shared = $(shared) ;
- self.real-name = $(real-name) ;
- self.real-name ?= $(name) ;
         self.search = $(search) ;
     }
-
-
+
     rule shared ( )
     {
         return $(self.shared) ;
     }
-
- rule real-name ( )
- {
- return $(self.real-name) ;
- }
-
+
     rule search ( )
     {
         return $(self.search) ;
@@ -578,8 +575,8 @@
             local search = [ feature.get-values <search> : $(properties) ] ;
 
             a = [ new null-action $(property-set) ] ;
- local t = [ new searched-lib-target $(name) : $(project) : $(shared)
- : [ feature.get-values <name> : $(properties) ]
+ local lib-name = [ feature.get-values <name> : $(properties) ] ;
+ local t = [ new searched-lib-target $(lib-name) : $(project) : $(shared)
                             : $(search)
                             : $(a)
                       ] ;
@@ -809,7 +806,7 @@
         {
             if [ type.is-derived [ $(s).type ] SEARCHED_LIB ]
             {
- local name = [ $(s).real-name ] ;
+ local name = [ $(s).name ] ;
                 if [ $(s).shared ]
                 {
                     fsa += $(name) ;

Modified: branches/hash/tools/build/v2/tools/sun.jam
==============================================================================
--- branches/hash/tools/build/v2/tools/sun.jam (original)
+++ branches/hash/tools/build/v2/tools/sun.jam 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -54,6 +54,23 @@
 
 flags sun.compile.c++ OPTIONS <inlining>off : +d ;
 
+# The -m32 and -m64 options are supported starting
+# with Sun Studio 12. On earlier compilers, the
+# 'address-model' feature is not supported and should not
+# be used. Instead, use -xarch=generic64 command line
+# option.
+# See http://svn.boost.org/trac/boost/ticket/1186
+# for details.
+flags sun OPTIONS <address-model>32 : -m32 ;
+flags sun OPTIONS <address-model>64 : -m64 ;
+# On sparc, there's a difference between -Kpic
+# and -KPIC. The first is slightly more efficient,
+# but has the limits on the size of GOT table.
+# For minimal fuss on user side, we use -KPIC here.
+# See http://svn.boost.org/trac/boost/ticket/1186#comment:6
+# for detailed explanation.
+flags sun OPTIONS <link>shared : -KPIC ;
+
 flags sun.compile OPTIONS <cflags> ;
 flags sun.compile.c++ OPTIONS <cxxflags> ;
 flags sun.compile DEFINES <define> ;

Modified: branches/hash/tools/build/v2/util/path.jam
==============================================================================
--- branches/hash/tools/build/v2/util/path.jam (original)
+++ branches/hash/tools/build/v2/util/path.jam 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -380,7 +380,14 @@
                 errors.error $(child) is not a subdir of $(parent) ;
             }
         }
- return [ join $(split2) ] ;
+ if $(split2)
+ {
+ return [ join $(split2) ] ;
+ }
+ else
+ {
+ return "." ;
+ }
     }
 }
 

Modified: branches/hash/tools/regression/library_status.cpp
==============================================================================
--- branches/hash/tools/regression/library_status.cpp (original)
+++ branches/hash/tools/regression/library_status.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -89,32 +89,24 @@
     struct col_node {
         int rows, cols;
         bool is_leaf_directory;
- std::string m_name;
- std::set<col_node> m_subcolumns;
+ typedef std::map<const std::string, col_node> subcolumns_t;
+ subcolumns_t m_subcolumns;
         bool operator<(const col_node &cn) const;
- col_node(const std::string &s) :
- m_name(s),
+ col_node() :
             is_leaf_directory(false)
         {}
- col_node(){};
         std::pair<int, int> get_spans();
- typedef std::set<col_node>::iterator iterator;
- typedef std::set<col_node>::const_iterator const_iterator;
     };
 
- bool col_node::operator<(const col_node &cn) const {
- return m_name < cn.m_name;
- }
-
     std::pair<int, int> col_node::get_spans(){
         rows = 1;
         cols = 0;
         if(is_leaf_directory)
             cols = 1;
- std::set<col_node>::iterator itr;
+ subcolumns_t::iterator itr;
         for(itr = m_subcolumns.begin(); itr != m_subcolumns.end(); ++itr){
             std::pair<int, int> spans;
- spans = itr->get_spans();
+ spans = itr->second.get_spans();
             rows = std::max(rows, spans.first);
             cols += spans.second;
         }
@@ -126,9 +118,11 @@
         fs::directory_iterator itr(dir_root);
         while(itr != end_itr){
             if(fs::is_directory(*itr)){
- std::pair<col_node::iterator, bool> result
- = node.m_subcolumns.insert(col_node(itr->leaf()));
- build_node_tree(*itr, *(result.first));
+ std::pair<col_node::subcolumns_t::iterator, bool> result
+ = node.m_subcolumns.insert(
+ std::make_pair(itr->leaf(), col_node())
+ );
+ build_node_tree(*itr, result.first->second);
                 is_leaf_directory = false;
             }
             ++itr;
@@ -552,19 +546,19 @@
             );
         }
 
- col_node::const_iterator col_itr;
+ col_node::subcolumns_t::const_iterator col_itr;
         for(
             col_itr = node.m_subcolumns.begin();
             col_itr != node.m_subcolumns.end();
             ++col_itr
         ){
- fs::path subdir = dir_root / col_itr->m_name;
+ fs::path subdir = dir_root / col_itr->first;
             retval |= visit_node_tree(
- *col_itr,
+ col_itr->second,
                 subdir,
                 lib_name,
                 target,
- col_itr->m_name == "profile"
+ col_itr->first == "profile"
             );
         }
         return retval;
@@ -656,10 +650,10 @@
 
     // column header-----------------------------------------------------------//
     int header_depth(const col_node & root){
- std::set<col_node>::const_iterator itr;
+ col_node::subcolumns_t::const_iterator itr;
         int max_depth = 1;
         for(itr = root.m_subcolumns.begin(); itr != root.m_subcolumns.end(); ++itr){
- max_depth = std::max(max_depth, itr->rows);
+ max_depth = std::max(max_depth, itr->second.rows);
         }
         return max_depth;
     }
@@ -685,9 +679,9 @@
     ){
         if(current_row < display_row){
             if(! node.m_subcolumns.empty()){
- std::set<col_node>::const_iterator itr;
+ col_node::subcolumns_t::const_iterator itr;
                 for(itr = node.m_subcolumns.begin(); itr != node.m_subcolumns.end(); ++itr){
- emit_column_headers(*itr, display_row, current_row + 1, row_count);
+ emit_column_headers(itr->second, display_row, current_row + 1, row_count);
                 }
             }
             return;
@@ -695,12 +689,12 @@
         if(node.is_leaf_directory && ! node.m_subcolumns.empty()){
             header_cell(row_count - current_row, 1, std::string(""));
         }
- std::set<col_node>::const_iterator itr;
+ col_node::subcolumns_t::const_iterator itr;
         for(itr = node.m_subcolumns.begin(); itr != node.m_subcolumns.end(); ++itr){
- if(1 == itr->rows)
- header_cell(row_count - current_row, itr->cols, itr->m_name);
+ if(1 == itr->second.rows)
+ header_cell(row_count - current_row, itr->second.cols, itr->first);
             else
- header_cell(1, itr->cols, itr->m_name);
+ header_cell(1, itr->second.cols, itr->first);
         }
     }
 

Modified: branches/hash/tools/regression/process_jam_log.cpp
==============================================================================
--- branches/hash/tools/regression/process_jam_log.cpp (original)
+++ branches/hash/tools/regression/process_jam_log.cpp 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -128,15 +128,10 @@
   {
     string temp( s );
     convert_path_separators( temp );
- string::size_type pos = temp.find_last_of( "/");
- if(pos == string::npos)
- temp = "./";
- else{
- temp.erase( pos ); // remove leaf
+ temp.erase( temp.find_last_of( "/" ) ); // remove leaf
     temp = split( trim_left( temp ) ).back();
     if ( temp[0] == '.' ) temp.erase( 0, temp.find_first_not_of( "./" ) );
     else temp.erase( 0, locate_root.string().size()+1 );
- }
     if ( echo )
         std::cout << "\ttarget_directory( \"" << s << "\") -> \"" << temp << "\"" << std::endl;
     return temp;
@@ -176,43 +171,52 @@
   // returns library name corresponding to that path.
   string test_path_to_library_name( string const& path )
   {
- // The path format is ...libs/.../something.test/....
- // So, the part between "libs" and "something.test" can be considered
+ std::string result;
+ string::size_type start_pos( path.find( "libs/" ) );
+ if ( start_pos != string::npos )
+ {
+ // The path format is ...libs/functional/hash/test/something.test/....
+ // So, the part between "libs" and "test/something.test" can be considered
       // as library name. But, for some libraries tests are located too deep,
       // say numeric/ublas/test/test1 directory, and some libraries have tests
- // in several subdirectories (regex/example and regex/test). So, its
- // not a "library name" as it may include subdirectories
+ // in several subdirectories (regex/example and regex/test). So, nested
+ // directory may belong to several libraries.
 
- string::size_type end_pos = path.find(".test/");
- end_pos = path.rfind("/", end_pos);
+ // To disambituate, it's possible to place a 'sublibs' file in
+ // a directory. It means that child directories are separate libraries.
+ // It's still possible to have tests in the directory that has 'sublibs'
+ // file.
+
+ std::string interesting;
+ start_pos += 5;
+ string::size_type end_pos( path.find( ".test/", start_pos ) );
+ end_pos = path.rfind('/', end_pos);
+ if (path.substr(end_pos - 5, 5) == "/test")
+ interesting = path.substr( start_pos, end_pos - 5 - start_pos );
+ else
+ interesting = path.substr( start_pos, end_pos - start_pos );
 
- string::size_type start_pos;
- string::size_type pos = end_pos;
- unsigned int i;
- for(i = 0;; ++i){
- start_pos = path.rfind("/", pos - 1);
-
- if ( start_pos == string::npos )
- return string(); // empty string
-
- ++start_pos;
-
- const std::string dir = path.substr(start_pos, pos - start_pos);
- if(0 == i){
- // if this directory is either "test" or "example"
- // skip it in order to be compatible with testing.jam
- if("test" == dir
- || "example" == dir){
- end_pos = start_pos - 1;
+ // Take slash separate elements until we have corresponding 'sublibs'.
+ end_pos = 0;
+ for(;;)
+ {
+ end_pos = interesting.find('/', end_pos);
+ if (end_pos == string::npos) {
+ result = interesting;
+ break;
         }
+ result = interesting.substr(0, end_pos);
+
+ if ( fs::exists( ( boost_root / "libs" ) / result / "sublibs" ) )
+ {
+ end_pos = end_pos + 1;
         }
- if("libs" == dir){
- start_pos = pos + 1;
+ else
           break;
       }
- pos = start_pos - 1;
     }
- return path.substr(start_pos, end_pos - start_pos);
+
+ return result;
   }
 
   // Tries to find target name in the string 'msg', starting from

Modified: branches/hash/tools/regression/xsl_reports/runner/regression.py
==============================================================================
--- branches/hash/tools/regression/xsl_reports/runner/regression.py (original)
+++ branches/hash/tools/regression/xsl_reports/runner/regression.py 2007-08-27 15:56:02 EDT (Mon, 27 Aug 2007)
@@ -182,7 +182,7 @@
 def download_boost_tarball( destination, tag, proxy, timestamp_only = False ):
     tarball_name = tarball_name_for_tag( tag, timestamp_only )
     tarball_path = os.path.join( destination, tarball_name )
- tarball_url = 'http://engineering.meta-comm.com/boost/snapshot/%s' % tarball_name
+ tarball_url = 'http://beta.boost.org/development/snapshot.php/%s' % tag
 
     log( 'Downloading "%s" to "%s"...' % ( tarball_url, os.path.dirname( tarball_path ) ) )
     if os.path.exists( tarball_path ):


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk