fix erase field

fixes #1828
closes #1829
This commit is contained in:
Richard Hodges
2020-01-29 23:58:07 +01:00
parent c9d5049307
commit 6d10adf936
3 changed files with 24 additions and 1 deletions

View File

@ -1,3 +1,9 @@
Version XXX:
* fix erase field
--------------------------------------------------------------------------------
Version 284:
* fix compilation macro documentation

View File

@ -617,7 +617,7 @@ erase(const_iterator pos) ->
{
auto next = pos;
auto& e = *next++;
set_.erase(e);
set_.erase(set_.iterator_to(e));
list_.erase(pos);
delete_element(const_cast<element&>(e));
return next;

View File

@ -988,6 +988,21 @@ public:
BEAST_EXPECT(res[field::transfer_encoding] == "chunked, foo");
}
void
testIssue1828()
{
beast::http::fields req;
req.insert("abc", "1");
req.insert("abc", "2");
req.insert("abc", "3");
BEAST_EXPECT(req.count("abc") == 3);
auto iter = req.find("abc");
BEAST_EXPECT(iter->value() == "1");
req.insert("abc", "4");
req.erase(iter);
BEAST_EXPECT(req.count("abc") == 3);
}
void
run() override
{
@ -1002,6 +1017,8 @@ public:
testKeepAlive();
testContentLength();
testChunked();
testIssue1828();
}
};