Inverted dependency between MemoryPool and string adapters.

Inserted a null after each raw string in the pool.
This commit is contained in:
Benoit Blanchon
2020-07-08 09:38:27 +02:00
parent 7e58347fbe
commit 04c59985a1
25 changed files with 143 additions and 119 deletions

View File

@@ -60,6 +60,19 @@ class MemoryPool {
return s;
}
template <typename TAdaptedString>
char* saveString(const TAdaptedString& str) {
if (str.isNull())
return 0;
size_t n = str.size();
char* dup = allocFrozenString(n + 1);
if (dup) {
str.copyTo(dup, n);
dup[n] = 0; // force null-terminator
}
return dup;
}
StringSlot allocExpandableString() {
StringSlot s;
s.value = _left;