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; content_.asOwnedString = s;
} }
void setRawString(StringNode* s, MemoryPool* pool) { template <typename T>
void setRawString(SerializedValue<T> value, MemoryPool* pool) {
release(pool); release(pool);
setRawString(s); auto dup = pool->saveString(adaptString(value.data(), value.size()));
if (dup)
setRawString(dup);
else
setNull();
} }
template <typename TAdaptedString> template <typename TAdaptedString>

View File

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