Do not use std::vector = {} to release memory

This commit is contained in:
Pieter Wuille
2023-09-11 13:54:32 -04:00
parent fd69ffbbfb
commit 3fcd7fc7ff
4 changed files with 57 additions and 14 deletions

View File

@@ -1791,4 +1791,29 @@ BOOST_AUTO_TEST_CASE(util_WriteBinaryFile)
BOOST_CHECK(valid);
BOOST_CHECK_EQUAL(actual_text, expected_text);
}
BOOST_AUTO_TEST_CASE(clearshrink_test)
{
{
std::vector<uint8_t> v = {1, 2, 3};
ClearShrink(v);
BOOST_CHECK_EQUAL(v.size(), 0);
BOOST_CHECK_EQUAL(v.capacity(), 0);
}
{
std::vector<bool> v = {false, true, false, false, true, true};
ClearShrink(v);
BOOST_CHECK_EQUAL(v.size(), 0);
BOOST_CHECK_EQUAL(v.capacity(), 0);
}
{
std::deque<int> v = {1, 3, 3, 7};
ClearShrink(v);
BOOST_CHECK_EQUAL(v.size(), 0);
// std::deque has no capacity() we can observe.
}
}
BOOST_AUTO_TEST_SUITE_END()