forked from bblanchon/ArduinoJson
Move raw string copy logic into VariantData::setRawString()
This commit is contained in:
@ -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>
|
||||
|
@ -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) {
|
||||
|
Reference in New Issue
Block a user