moved-from container with unequal allocator will not be modified:

Affects:
- flat_buffer
- multi_buffer
- http::fields

fixes #1832
closes #1834
This commit is contained in:
Richard Hodges
2020-02-04 18:36:53 +01:00
parent 6d10adf936
commit 7701bf8738
6 changed files with 9 additions and 18 deletions
+4 -4
View File
@@ -103,8 +103,8 @@ public:
ostream(b1) << "Hello";
a_neq_t a;
basic_flat_buffer<a_neq_t> b2{std::move(b1), a};
BEAST_EXPECT(b1.size() == 0);
BEAST_EXPECT(b1.capacity() == 0);
BEAST_EXPECT(b1.size() != 0);
BEAST_EXPECT(b1.capacity() != 0);
BEAST_EXPECT(buffers_to_string(b2.data()) == "Hello");
BEAST_EXPECT(b1.max_size() == b2.max_size());
}
@@ -186,8 +186,8 @@ public:
basic_flat_buffer<na_t> b2;
b2 = std::move(b1);
BEAST_EXPECT(b1.get_allocator() != b2.get_allocator());
BEAST_EXPECT(b1.size() == 0);
BEAST_EXPECT(b1.capacity() == 0);
BEAST_EXPECT(b1.size() != 0);
BEAST_EXPECT(b1.capacity() != 0);
BEAST_EXPECT(buffers_to_string(b2.data()) == "Hello");
}
{
+4 -4
View File
@@ -237,8 +237,8 @@ public:
ostream(b1) << "Hello";
unequal_t a;
basic_multi_buffer<unequal_t> b2{std::move(b1), a};
BEAST_EXPECT(b1.size() == 0);
BEAST_EXPECT(b1.capacity() == 0);
BEAST_EXPECT(b1.size() != 0);
BEAST_EXPECT(b1.capacity() != 0);
BEAST_EXPECT(buffers_to_string(b2.data()) == "Hello");
BEAST_EXPECT(b1.max_size() == b2.max_size());
}
@@ -300,8 +300,8 @@ public:
basic_multi_buffer<na_t> b2;
b2 = std::move(b1);
BEAST_EXPECT(b1.get_allocator() != b2.get_allocator());
BEAST_EXPECT(b1.size() == 0);
BEAST_EXPECT(b1.capacity() == 0);
BEAST_EXPECT(b1.size() != 0);
BEAST_EXPECT(b1.capacity() != 0);
BEAST_EXPECT(buffers_to_string(b2.data()) == "Hello");
}
{