[pkg-boost-commits] r14765 - in boost/branches/1.49.0/debian: . patches

Steven Michael Robbins smr at alioth.debian.org
Tue May 14 05:33:00 UTC 2013


Author: smr
Date: 2013-05-14 05:33:00 +0000 (Tue, 14 May 2013)
New Revision: 14765

Added:
   boost/branches/1.49.0/debian/patches/unordered_multimap.patch
Removed:
   boost/branches/1.49.0/debian/patches/changeset_80894.diff
Modified:
   boost/branches/1.49.0/debian/changelog
   boost/branches/1.49.0/debian/patches/changeset_78679.diff
   boost/branches/1.49.0/debian/patches/series
Log:
Tweak patch sets.

Modified: boost/branches/1.49.0/debian/changelog
===================================================================
--- boost/branches/1.49.0/debian/changelog	2013-05-14 05:06:17 UTC (rev 14764)
+++ boost/branches/1.49.0/debian/changelog	2013-05-14 05:33:00 UTC (rev 14765)
@@ -4,10 +4,10 @@
     TIME_UTC.  Closes: #707389, 707540, 695826, 701377, 703980.
   * patches/changeset_78679.diff: New.  Fix compile of read_json.  
     Closes: #689600.
-  * patches/changeset_80894.diff: New.  Fix boost::unordered_multimap.
+  * patches/unordered_multimap.patch: New.  Fix boost::unordered_multimap.
     Closes: #692868
 
- -- Steve M. Robbins <smr at debian.org>  Tue, 14 May 2013 00:05:57 -0500
+ -- Steve M. Robbins <smr at debian.org>  Tue, 14 May 2013 00:32:42 -0500
 
 boost1.49 (1.49.0-3.2) unstable; urgency=high
 

Modified: boost/branches/1.49.0/debian/patches/changeset_78679.diff
===================================================================
--- boost/branches/1.49.0/debian/patches/changeset_78679.diff	2013-05-14 05:06:17 UTC (rev 14764)
+++ boost/branches/1.49.0/debian/patches/changeset_78679.diff	2013-05-14 05:33:00 UTC (rev 14765)
@@ -1,41 +1,41 @@
-Description: Fix read_json to compile with c++11
- Upstream Changeset 78679
-Author: cornedbee
-Bug: 689600
-Forwarded: https://svn.boost.org/trac/boost/ticket/6785
-
-
-Index: /branches/release/boost/property_tree/detail/json_parser_read.hpp
-===================================================================
---- /branches/release/boost/property_tree/detail/json_parser_read.hpp	(revision 71991)
-+++ /branches/release/boost/property_tree/detail/json_parser_read.hpp	(revision 78679)
-@@ -103,5 +103,6 @@
-             {
-                 BOOST_ASSERT(c.stack.size() >= 1);
--                c.stack.back()->push_back(std::make_pair(c.name, Str(b, e)));
-+                c.stack.back()->push_back(std::make_pair(c.name,
-+                    Ptree(Str(b, e))));
-                 c.name.clear();
-                 c.string.clear();
-Index: /branches/release/boost/property_tree/detail/ptree_implementation.hpp
-===================================================================
---- /branches/release/boost/property_tree/detail/ptree_implementation.hpp	(revision 76447)
-+++ /branches/release/boost/property_tree/detail/ptree_implementation.hpp	(revision 78679)
-@@ -390,5 +390,5 @@
-             bool operator ()(const P& lhs, const P& rhs) const {
-               return lhs.first < rhs.first;
--            };
-+            }
-         };
-     }
-Index: /branches/release/libs/property_tree/test/test_xml_parser_rapidxml.cpp
-===================================================================
---- /branches/release/libs/property_tree/test/test_xml_parser_rapidxml.cpp	(revision 65976)
-+++ /branches/release/libs/property_tree/test/test_xml_parser_rapidxml.cpp	(revision 78679)
-@@ -16,5 +16,5 @@
- #define BOOST_UTF8_DECL
- #include <boost/detail/utf8_codecvt_facet.hpp>
--#include "../../detail/utf8_codecvt_facet.cpp"
-+#include <boost/detail/utf8_codecvt_facet.ipp>
- 
- int test_main(int argc, char *argv[])
+Description: Fix read_json to compile with c++11
+ Upstream Changeset 78679
+Author: cornedbee
+Bug: 689600
+Forwarded: https://svn.boost.org/trac/boost/ticket/6785
+
+
+--- boost1.49-1.49.0.orig/boost/property_tree/detail/json_parser_read.hpp
++++ boost1.49-1.49.0/boost/property_tree/detail/json_parser_read.hpp
+@@ -102,7 +102,8 @@
+             void operator()(It b, It e) const
+             {
+                 BOOST_ASSERT(c.stack.size() >= 1);
+-                c.stack.back()->push_back(std::make_pair(c.name, Str(b, e)));
++                c.stack.back()->push_back(std::make_pair(c.name,
++                    Ptree(Str(b, e))));
+                 c.name.clear();
+                 c.string.clear();
+             }
+--- boost1.49-1.49.0.orig/boost/property_tree/detail/ptree_implementation.hpp
++++ boost1.49-1.49.0/boost/property_tree/detail/ptree_implementation.hpp
+@@ -389,7 +389,7 @@
+             template <typename P>
+             bool operator ()(const P& lhs, const P& rhs) const {
+               return lhs.first < rhs.first;
+-            };
++            }
+         };
+     }
+ 
+--- boost1.49-1.49.0.orig/libs/property_tree/test/test_xml_parser_rapidxml.cpp
++++ boost1.49-1.49.0/libs/property_tree/test/test_xml_parser_rapidxml.cpp
+@@ -15,7 +15,7 @@
+ #define BOOST_UTF8_END_NAMESPACE }}
+ #define BOOST_UTF8_DECL
+ #include <boost/detail/utf8_codecvt_facet.hpp>
+-#include "../../detail/utf8_codecvt_facet.cpp"
++#include <boost/detail/utf8_codecvt_facet.ipp>
+ 
+ int test_main(int argc, char *argv[])
+ {

Deleted: boost/branches/1.49.0/debian/patches/changeset_80894.diff
===================================================================
--- boost/branches/1.49.0/debian/patches/changeset_80894.diff	2013-05-14 05:06:17 UTC (rev 14764)
+++ boost/branches/1.49.0/debian/patches/changeset_80894.diff	2013-05-14 05:33:00 UTC (rev 14765)
@@ -1,225 +0,0 @@
-Description: Fix crash in unordered_multimap::erase(iterator, iterator) function
- Upstream Changeset 80894
-Author: danieljames
-Bug: 692868
-Forwarded: https://svn.boost.org/trac/boost/ticket/7471
-
-Index: /trunk/boost/unordered/detail/equivalent.hpp
-===================================================================
---- /trunk/boost/unordered/detail/equivalent.hpp	(revision 80561)
-+++ /trunk/boost/unordered/detail/equivalent.hpp	(revision 80894)
-@@ -677,7 +677,7 @@
-                     if(begin == group2) {
-                         link_pointer end1 = group1->group_prev_;
--                        link_pointer end2 = group2->group_prev_;
-+                        link_pointer end2 = end->group_prev_;
-                         group1->group_prev_ = end2;
--                        group2->group_prev_ = end1;
-+                        end->group_prev_ = end1;
-                     }
-                 }
-Index: /trunk/boost/unordered/detail/table.hpp
-===================================================================
---- /trunk/boost/unordered/detail/table.hpp	(revision 80562)
-+++ /trunk/boost/unordered/detail/table.hpp	(revision 80894)
-@@ -619,5 +619,14 @@
-                 for(;;) {
-                     n = static_cast<node_pointer>(n->next_);
--                    if (n == end) return;
-+                    if (n == end) {
-+                        if (n) {
-+                            std::size_t new_bucket_index =
-+                                policy::to_bucket(bucket_count_, n->hash_);
-+                            if (bucket_index != new_bucket_index) {
-+                                get_bucket(new_bucket_index)->next_ = prev;
-+                            }
-+                        }
-+                        return;
-+                    }
- 
-                     std::size_t new_bucket_index =
-Index: /trunk/libs/unordered/test/unordered/erase_tests.cpp
-===================================================================
---- /trunk/libs/unordered/test/unordered/erase_tests.cpp	(revision 80416)
-+++ /trunk/libs/unordered/test/unordered/erase_tests.cpp	(revision 80894)
-@@ -16,4 +16,5 @@
- #include "../helpers/equivalent.hpp"
- #include "../helpers/helpers.hpp"
-+#include "../helpers/invariants.hpp"
- 
- #include <iostream>
-@@ -33,4 +34,5 @@
-         test::random_values<Container> v(1000, generator);
-         Container x(v.begin(), v.end());
-+        int iterations = 0;
-         for(BOOST_DEDUCED_TYPENAME test::random_values<Container>::iterator
-             it = v.begin(); it != v.end(); ++it)
-@@ -42,4 +44,5 @@
-             BOOST_TEST(x.count(test::get_key<Container>(*it)) == 0);
-             BOOST_TEST(x.find(test::get_key<Container>(*it)) == x.end());
-+            if (++iterations % 20 == 0) test::check_equivalent_keys(x);
-         }
-     }
-@@ -52,4 +55,5 @@
-         Container x(v.begin(), v.end());
-         std::size_t size = x.size();
-+        int iterations = 0;
-         while(size > 0 && !x.empty())
-         {
-@@ -63,4 +67,5 @@
-             BOOST_TEST(x.count(key) == count - 1);
-             BOOST_TEST(x.size() == size);
-+            if (++iterations % 20 == 0) test::check_equivalent_keys(x);
-         }
-         BOOST_TEST(x.empty());
-@@ -74,4 +79,5 @@
-         Container x(v.begin(), v.end());
-         std::size_t size = x.size();
-+        int iterations = 0;
-         while(size > 0 && !x.empty())
-         {
-@@ -97,4 +103,5 @@
-             BOOST_TEST(x.count(key) == count - 1);
-             BOOST_TEST(x.size() == size);
-+            if (++iterations % 20 == 0) test::check_equivalent_keys(x);
-         }
-         BOOST_TEST(x.empty());
-@@ -117,10 +124,13 @@
-         BOOST_TEST(x.erase(x.begin(), x.begin()) == x.begin());
-         BOOST_TEST(x.size() == size);
-+        test::check_equivalent_keys(x);
- 
-         BOOST_TEST(x.erase(x.begin(), x.end()) == x.end());
-         BOOST_TEST(x.empty());
-         BOOST_TEST(x.begin() == x.end());
-+        test::check_equivalent_keys(x);
- 
-         BOOST_TEST(x.erase(x.begin(), x.end()) == x.begin());
-+        test::check_equivalent_keys(x);
-     }
- 
-@@ -132,4 +142,5 @@
-         Container x(v.begin(), v.end());
-         std::size_t size = x.size();
-+        int iterations = 0;
-         while(size > 0 && !x.empty())
-         {
-@@ -141,4 +152,5 @@
-             BOOST_TEST(x.count(key) == count - 1);
-             BOOST_TEST(x.size() == size);
-+            if (++iterations % 20 == 0) test::check_equivalent_keys(x);
-         }
-         BOOST_TEST(x.empty());
-@@ -152,4 +164,5 @@
-         Container x(v.begin(), v.end());
-         std::size_t size = x.size();
-+        int iterations = 0;
-         while(size > 0 && !x.empty())
-         {
-@@ -175,4 +188,5 @@
-             BOOST_TEST(x.count(key) == count - 1);
-             BOOST_TEST(x.size() == size);
-+            if (++iterations % 20 == 0) test::check_equivalent_keys(x);
-         }
-         BOOST_TEST(x.empty());
-Index: /trunk/libs/unordered/test/unordered/erase_equiv_tests.cpp
-===================================================================
---- /trunk/libs/unordered/test/unordered/erase_equiv_tests.cpp	(revision 79357)
-+++ /trunk/libs/unordered/test/unordered/erase_equiv_tests.cpp	(revision 80894)
-@@ -13,4 +13,5 @@
- #include "../helpers/test.hpp"
- #include "../helpers/list.hpp"
-+#include "../helpers/invariants.hpp"
- #include <set>
- #include <iostream>
-@@ -50,4 +51,10 @@
- {
-     int operator()(int x) const { return x & 1; }
-+};
-+
-+// For testing erase in lots of buckets.
-+struct collision3_hash
-+{
-+    int operator()(int x) const { return x; }
- };
- 
-@@ -58,4 +65,7 @@
-     collision2_hash, std::equal_to<int>,
-     test::allocator2<std::pair<int const, int> > > collide_map2;
-+typedef boost::unordered_multimap<int, int,
-+    collision3_hash, std::equal_to<int>,
-+    test::allocator2<std::pair<int const, int> > > collide_map3;
- typedef collide_map::value_type collide_value;
- typedef test::list<collide_value> collide_list;
-@@ -67,4 +77,5 @@
-     x.erase(x.begin(), x.begin());
-     x.erase(x.end(), x.end());
-+    test::check_equivalent_keys(x);
- }
- 
-@@ -77,8 +88,11 @@
-     x.erase(x.begin(), x.begin());
-     BOOST_TEST(x.count(1) == 1 && x.size() == 1);
-+    test::check_equivalent_keys(x);
-     x.erase(x.end(), x.end());
-     BOOST_TEST(x.count(1) == 1 && x.size() == 1);
-+    test::check_equivalent_keys(x);
-     x.erase(x.begin(), x.end());
-     BOOST_TEST(x.count(1) == 0 && x.size() == 0);
-+    test::check_equivalent_keys(x);
- }
- 
-@@ -93,4 +107,5 @@
-         x.erase(x.begin(), x.end());
-         BOOST_TEST(x.count(1) == 0 && x.size() == 0);
-+        test::check_equivalent_keys(x);
-     }
- 
-@@ -101,4 +116,5 @@
-         BOOST_TEST(x.count(1) == 1 && x.size() == 1 &&
-             x.begin()->first == 1 && x.begin()->second == value);
-+        test::check_equivalent_keys(x);
-     }
- 
-@@ -109,4 +125,5 @@
-         BOOST_TEST(x.count(1) == 1 && x.size() == 1 &&
-                 x.begin()->first == 1 && x.begin()->second == value);
-+        test::check_equivalent_keys(x);
-     }
- }
-@@ -130,4 +147,6 @@
-     l.erase(boost::next(l.begin(), start), boost::next(l.begin(), end));
-     x.erase(boost::next(x.begin(), start), boost::next(x.begin(), end));
-+
-+    test::check_equivalent_keys(x);
-     return compare(l, x);
- }
-@@ -192,3 +211,10 @@
- }
- 
-+UNORDERED_AUTO_TEST(exhaustive_collide3_tests)
-+{
-+    std::cout<<"exhaustive_collide3_tests:\n";
-+    exhaustive_erase_tests((collide_map3*) 0, 8, 4);
-+    std::cout<<"\n";
-+}
-+
- RUN_TESTS()
-Index: /trunk/libs/unordered/doc/changes.qbk
-===================================================================
---- /trunk/libs/unordered/doc/changes.qbk	(revision 80776)
-+++ /trunk/libs/unordered/doc/changes.qbk	(revision 80894)
-@@ -3,4 +3,7 @@
-  / 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) ]
-+
-+[template ticket[number]'''<ulink
-+    url="https://svn.boost.org/trac/boost/ticket/'''[number]'''">'''#[number]'''</ulink>''']
- 
- [section:changes Change Log]
-@@ -212,4 +215,5 @@
- * Faster assign, which assigns to existing nodes where possible, rather than
-   creating entirely new nodes and copy constructing.
-+* Fixed bug in `erase_range` ([ticket 7471]).
- * Reverted some of the internal changes to how nodes are created, especially
-   for C++11 compilers. 'construct' and 'destroy' should work a little better

Modified: boost/branches/1.49.0/debian/patches/series
===================================================================
--- boost/branches/1.49.0/debian/patches/series	2013-05-14 05:06:17 UTC (rev 14764)
+++ boost/branches/1.49.0/debian/patches/series	2013-05-14 05:33:00 UTC (rev 14765)
@@ -1,6 +1,6 @@
 thread-xtime.patch
 changeset_78679.diff
-changeset_80894.diff
+unordered_multimap.patch
 boost-python-examples.patch
 endian.patch
 boost-1.44-py3.1.patch

Added: boost/branches/1.49.0/debian/patches/unordered_multimap.patch
===================================================================
--- boost/branches/1.49.0/debian/patches/unordered_multimap.patch	                        (rev 0)
+++ boost/branches/1.49.0/debian/patches/unordered_multimap.patch	2013-05-14 05:33:00 UTC (rev 14765)
@@ -0,0 +1,76 @@
+Description: Fix crash in unordered_multimap::erase(iterator, iterator) function
+ Patch from upstream bug report
+Author: danieljames
+Bug: 692868
+Forwarded: https://svn.boost.org/trac/boost/ticket/7618
+
+
+diff --git a/boost/unordered/detail/buckets.hpp b/boost/unordered/detail/buckets.hpp
+index 7492220..0edd76f 100644
+--- a/boost/unordered/detail/buckets.hpp
++++ b/boost/unordered/detail/buckets.hpp
+@@ -510,7 +510,16 @@ namespace boost { namespace unordered { namespace detail {
+             {
+                 for(;;) {
+                     n = static_cast<node_pointer>(n->next_);
+-                    if (n == end) return;
++                    if (n == end) {
++                        if (n) {
++                            std::size_t new_bucket_index =
++                                n->hash_ % this->bucket_count_;
++                            if (bucket_index != new_bucket_index) {
++                                this->get_bucket(new_bucket_index)->next_ = prev;
++                            }
++                        }
++                        return;
++                    }
+     
+                     std::size_t new_bucket_index =
+                         n->hash_ % this->bucket_count_;
+diff --git a/boost/unordered/detail/equivalent.hpp b/boost/unordered/detail/equivalent.hpp
+index 6e7e419..1c0def7 100644
+--- a/boost/unordered/detail/equivalent.hpp
++++ b/boost/unordered/detail/equivalent.hpp
+@@ -323,7 +323,7 @@ namespace boost { namespace unordered { namespace detail {
+             }
+ 
+             node_pointer start = n1;
+-            for(;n1 != end2; n1 = static_cast<node_pointer>(n1->next_))
++            for(;n1 != end1; n1 = static_cast<node_pointer>(n1->next_))
+             {
+                 value_type const& v = n1->value();
+                 if (find(start, n1, v)) continue;
+@@ -651,9 +651,9 @@ namespace boost { namespace unordered { namespace detail {
+ 
+                     if(begin == group2) {
+                         link_pointer end1 = group1->group_prev_;
+-                        link_pointer end2 = group2->group_prev_;
++                        link_pointer end2 = end->group_prev_;
+                         group1->group_prev_ = end2;
+-                        group2->group_prev_ = end1;
++                        end->group_prev_ = end1;
+                     }
+                 }
+             }
+@@ -780,7 +780,7 @@ namespace boost { namespace unordered { namespace detail {
+         // strong otherwise exception safety
+         void rehash_impl(std::size_t num_buckets)
+         {
+-            BOOST_ASSERT(this->size_);
++            BOOST_ASSERT(this->buckets_);
+ 
+             buckets dst(this->node_alloc(), num_buckets);
+             dst.create_buckets();
+diff --git a/boost/unordered/detail/unique.hpp b/boost/unordered/detail/unique.hpp
+index 9c049f7..d58e5bd 100644
+--- a/boost/unordered/detail/unique.hpp
++++ b/boost/unordered/detail/unique.hpp
+@@ -661,7 +661,7 @@ namespace boost { namespace unordered { namespace detail {
+         // strong otherwise exception safety
+         void rehash_impl(std::size_t num_buckets)
+         {
+-            BOOST_ASSERT(this->size_);
++            BOOST_ASSERT(this->buckets_);
+ 
+             buckets dst(this->node_alloc(), num_buckets);
+             dst.create_buckets();




More information about the pkg-boost-commits mailing list