[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