mirror of
https://github.com/boostorg/move.git
synced 2025-08-02 13:44:28 +02:00
Git Issue #15: Incorrect merge in adaptive_merge when the number of unique items is limited
This commit is contained in:
@@ -788,6 +788,14 @@ Many thanks to all boosters that have tested, reviewed and improved the library.
|
|||||||
|
|
||||||
[section:release_notes Release Notes]
|
[section:release_notes Release Notes]
|
||||||
|
|
||||||
|
[section:release_notes_boost_1_66 Boost 1.66 Release]
|
||||||
|
|
||||||
|
* Fixed bug:
|
||||||
|
* [@https://github.com/boostorg/move/issues/15 Git Issue #15: ['"Incorrect merge in adaptive_merge when the number of unique items is limited'"]].
|
||||||
|
|
||||||
|
[endsect]
|
||||||
|
|
||||||
|
|
||||||
[section:release_notes_boost_1_65 Boost 1.65 Release]
|
[section:release_notes_boost_1_65 Boost 1.65 Release]
|
||||||
|
|
||||||
* Fixed bug:
|
* Fixed bug:
|
||||||
|
@@ -2437,7 +2437,8 @@ void adaptive_merge_impl
|
|||||||
|
|
||||||
//Not the minimum number of keys is not available on the first range, so fallback to rotations
|
//Not the minimum number of keys is not available on the first range, so fallback to rotations
|
||||||
if(collected != to_collect && collected < 4){
|
if(collected != to_collect && collected < 4){
|
||||||
merge_bufferless(first, first+len1, first+len1+len2, comp);
|
merge_bufferless(first, first+collected, first+len1, comp);
|
||||||
|
merge_bufferless(first, first + len1, first + len1 + len2, comp);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -69,6 +69,7 @@ bool test_random_shuffled(std::size_t const element_count, std::size_t const num
|
|||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
const std::size_t NIter = 100;
|
const std::size_t NIter = 100;
|
||||||
|
test_random_shuffled<order_move_type>(10001, 3, NIter);
|
||||||
test_random_shuffled<order_move_type>(10001, 65, NIter);
|
test_random_shuffled<order_move_type>(10001, 65, NIter);
|
||||||
test_random_shuffled<order_move_type>(10001, 101, NIter);
|
test_random_shuffled<order_move_type>(10001, 101, NIter);
|
||||||
test_random_shuffled<order_move_type>(10001, 1023, NIter);
|
test_random_shuffled<order_move_type>(10001, 1023, NIter);
|
||||||
|
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
#include <boost/move/unique_ptr.hpp>
|
#include <boost/move/unique_ptr.hpp>
|
||||||
#include <boost/container/vector.hpp>
|
#include <boost/container/vector.hpp>
|
||||||
#include <boost/timer/timer.hpp>
|
|
||||||
|
|
||||||
#include "order_type.hpp"
|
#include "order_type.hpp"
|
||||||
#include "random_shuffle.hpp"
|
#include "random_shuffle.hpp"
|
||||||
@@ -63,6 +62,7 @@ bool test_random_shuffled(std::size_t const element_count, std::size_t const num
|
|||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
const std::size_t NIter = 100;
|
const std::size_t NIter = 100;
|
||||||
|
test_random_shuffled<order_move_type>(10001, 3, NIter);
|
||||||
test_random_shuffled<order_move_type>(10001, 65, NIter);
|
test_random_shuffled<order_move_type>(10001, 65, NIter);
|
||||||
test_random_shuffled<order_move_type>(10001, 101, NIter);
|
test_random_shuffled<order_move_type>(10001, 101, NIter);
|
||||||
test_random_shuffled<order_move_type>(10001, 1023, NIter);
|
test_random_shuffled<order_move_type>(10001, 1023, NIter);
|
||||||
|
Reference in New Issue
Block a user