forked from bblanchon/ArduinoJson
Change StringBuffer::save()
to take a VariantData*
This commit is contained in:
@ -32,7 +32,22 @@ class StringBuffer {
|
|||||||
return node_->data;
|
return node_->data;
|
||||||
}
|
}
|
||||||
|
|
||||||
StringNode* save() {
|
JsonString str() const {
|
||||||
|
ARDUINOJSON_ASSERT(node_ != nullptr);
|
||||||
|
|
||||||
|
return JsonString(node_->data, node_->length);
|
||||||
|
}
|
||||||
|
|
||||||
|
void save(VariantData* data) {
|
||||||
|
data->setOwnedString(commitStringNode());
|
||||||
|
}
|
||||||
|
|
||||||
|
void saveRaw(VariantData* data) {
|
||||||
|
data->setRawString(commitStringNode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
StringNode* commitStringNode() {
|
||||||
ARDUINOJSON_ASSERT(node_ != nullptr);
|
ARDUINOJSON_ASSERT(node_ != nullptr);
|
||||||
node_->data[size_] = 0;
|
node_->data[size_] = 0;
|
||||||
auto node = resources_->getString(adaptString(node_->data, size_));
|
auto node = resources_->getString(adaptString(node_->data, size_));
|
||||||
@ -52,13 +67,6 @@ class StringBuffer {
|
|||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
|
|
||||||
JsonString str() const {
|
|
||||||
ARDUINOJSON_ASSERT(node_ != nullptr);
|
|
||||||
|
|
||||||
return JsonString(node_->data, node_->length);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
ResourceManager* resources_;
|
ResourceManager* resources_;
|
||||||
StringNode* node_ = nullptr;
|
StringNode* node_ = nullptr;
|
||||||
size_t size_ = 0;
|
size_t size_ = 0;
|
||||||
|
@ -305,7 +305,7 @@ class MsgPackDeserializer {
|
|||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
variant->setOwnedString(stringBuffer_.save());
|
stringBuffer_.save(variant);
|
||||||
return DeserializationError::Ok;
|
return DeserializationError::Ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -334,7 +334,7 @@ class MsgPackDeserializer {
|
|||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
variant->setRawString(stringBuffer_.save());
|
stringBuffer_.saveRaw(variant);
|
||||||
return DeserializationError::Ok;
|
return DeserializationError::Ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -412,7 +412,7 @@ class MsgPackDeserializer {
|
|||||||
if (!keyVariant)
|
if (!keyVariant)
|
||||||
return DeserializationError::NoMemory;
|
return DeserializationError::NoMemory;
|
||||||
|
|
||||||
keyVariant->setOwnedString(stringBuffer_.save());
|
stringBuffer_.save(keyVariant);
|
||||||
} else {
|
} else {
|
||||||
member = 0;
|
member = 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user