mirror of
https://github.com/bblanchon/ArduinoJson.git
synced 2025-07-30 18:57:32 +02:00
Move raw string copy logic into VariantData::setRawString()
This commit is contained in:
@ -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>
|
||||||
|
@ -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) {
|
||||||
|
Reference in New Issue
Block a user