Move raw string copy logic into VariantData::setRawString()

This commit is contained in:
Benoit Blanchon
2023-05-25 10:06:01 +02:00
parent 3a73ccf027
commit c267b55dec
2 changed files with 8 additions and 7 deletions

View File

@ -299,9 +299,14 @@ class VariantData {
content_.asOwnedString = s;
}
void setRawString(StringNode* s, MemoryPool* pool) {
template <typename T>
void setRawString(SerializedValue<T> value, MemoryPool* pool) {
release(pool);
setRawString(s);
auto dup = pool->saveString(adaptString(value.data(), value.size()));
if (dup)
setRawString(dup);
else
setNull();
}
template <typename TAdaptedString>

View File

@ -103,11 +103,7 @@ inline void variantSetRawString(VariantData* var, SerializedValue<T> value,
MemoryPool* pool) {
if (!var)
return;
auto dup = pool->saveString(adaptString(value.data(), value.size()));
if (dup)
var->setRawString(dup, pool);
else
var->setNull(pool);
var->setRawString(value, pool);
}
inline size_t variantSize(const VariantData* var) {