Deduplicate static strings

This commit is contained in:
Benoit Blanchon
2025-02-27 13:42:04 +01:00
parent 08b2400592
commit ee144b89a2
5 changed files with 61 additions and 3 deletions
@@ -19,6 +19,25 @@ static StringNode* saveString(ResourceManager& resources, const char* s,
return resources.saveString(adaptString(s, n));
}
TEST_CASE("ResourceManager::saveStaticString()") {
SpyingAllocator spy;
ResourceManager resources(&spy);
auto a = resources.saveStaticString("hello");
auto b = resources.saveStaticString("world");
REQUIRE(a != b);
auto c = resources.saveStaticString("hello");
REQUIRE(a == c);
resources.shrinkToFit();
REQUIRE(spy.log() ==
AllocatorLog{
Allocate(sizeofStaticStringPool()),
Reallocate(sizeofStaticStringPool(), sizeofStaticStringPool(2)),
});
}
TEST_CASE("ResourceManager::saveString()") {
ResourceManager resources;