Always store serialized("string") by copy (#1915)

This commit is contained in:
Benoit Blanchon
2023-05-02 09:36:40 +02:00
parent 95f5d9d134
commit 806fa907ab
10 changed files with 11 additions and 54 deletions

View File

@ -89,15 +89,16 @@ TEST_CASE("JsonVariant::set(JsonVariant)") {
AllocatorLog() << AllocatorLog::Allocate(sizeofString((7))));
}
SECTION("stores Serialized<const char*> by reference") {
var1.set(serialized("hello!!", 8));
SECTION("stores Serialized<const char*> by copy") {
var1.set(serialized("hello!!", 7));
spyingAllocator.clearLog();
var2.set(var1);
REQUIRE(doc1.memoryUsage() == 0);
REQUIRE(doc2.memoryUsage() == 0);
REQUIRE(spyingAllocator.log() == AllocatorLog());
REQUIRE(doc1.memoryUsage() == sizeofString(7));
REQUIRE(doc2.memoryUsage() == sizeofString(7));
REQUIRE(spyingAllocator.log() ==
AllocatorLog() << AllocatorLog::Allocate(sizeofString((7))));
}
SECTION("stores Serialized<char*> by copy") {

View File

@ -205,6 +205,6 @@ TEST_CASE("JsonVariant::set() releases the previous value") {
SECTION("Serialized<const char*>") {
v.set(serialized("[]"));
REQUIRE(doc.memoryUsage() == sizeofObject(1));
REQUIRE(doc.memoryUsage() == sizeofObject(1) + sizeofString(2));
}
}