mirror of
https://github.com/eledio-devices/thirdparty-ArduinoJson.git
synced 2025-11-01 16:14:05 +01:00
Fixed "linked" strings incorrectly marked as "owned" (fixes #1318)
This commit is contained in:
@@ -99,62 +99,18 @@ inline bool variantSetOwnedRaw(VariantData *var, SerializedValue<T> value,
|
||||
return var != 0 && var->setOwnedRaw(value, pool);
|
||||
}
|
||||
|
||||
inline bool variantSetLinkedString(VariantData *var, const char *value) {
|
||||
if (!var)
|
||||
return false;
|
||||
var->setLinkedString(value);
|
||||
return true;
|
||||
}
|
||||
|
||||
inline void variantSetNull(VariantData *var) {
|
||||
if (!var)
|
||||
return;
|
||||
var->setNull();
|
||||
}
|
||||
|
||||
inline bool variantSetOwnedString(VariantData *var, char *value) {
|
||||
if (!var)
|
||||
return false;
|
||||
var->setOwnedString(value);
|
||||
return true;
|
||||
}
|
||||
|
||||
template <typename TAdaptedString>
|
||||
inline bool variantSetOwnedString(VariantData *var, TAdaptedString value,
|
||||
MemoryPool *pool) {
|
||||
return var != 0 && var->setOwnedString(value, pool);
|
||||
}
|
||||
|
||||
template <typename TAdaptedString>
|
||||
inline bool variantSetString(VariantData *var, TAdaptedString value,
|
||||
MemoryPool *pool,
|
||||
storage_policies::decide_at_runtime) {
|
||||
if (value.isStatic())
|
||||
return variantSetString(var, value, pool,
|
||||
storage_policies::store_by_address());
|
||||
else
|
||||
return variantSetString(var, value, pool,
|
||||
storage_policies::store_by_copy());
|
||||
}
|
||||
|
||||
template <typename TAdaptedString>
|
||||
inline bool variantSetString(VariantData *var, TAdaptedString value,
|
||||
MemoryPool *pool) {
|
||||
return variantSetString(var, value, pool,
|
||||
typename TAdaptedString::storage_policy());
|
||||
}
|
||||
|
||||
template <typename TAdaptedString>
|
||||
inline bool variantSetString(VariantData *var, TAdaptedString value,
|
||||
MemoryPool *, storage_policies::store_by_address) {
|
||||
return variantSetLinkedString(var, value.data());
|
||||
}
|
||||
|
||||
template <typename TAdaptedString>
|
||||
inline bool variantSetString(VariantData *var, TAdaptedString value,
|
||||
MemoryPool *pool,
|
||||
storage_policies::store_by_copy) {
|
||||
return variantSetOwnedString(var, value, pool);
|
||||
if (!var)
|
||||
return false;
|
||||
return var->setString(value, pool);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
|
||||
Reference in New Issue
Block a user