|
|
@@ -8,7 +8,6 @@
|
|
|
#include <ArduinoJson/Deserialization/DeserializationOptions.hpp>
|
|
|
#include <ArduinoJson/Deserialization/Reader.hpp>
|
|
|
#include <ArduinoJson/Polyfills/utility.hpp>
|
|
|
-#include <ArduinoJson/StringStorage/StringStorage.hpp>
|
|
|
|
|
|
ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE
|
|
|
|
|
|
@@ -23,16 +22,13 @@ struct first_or_void<T, Rest...> {
|
|
|
using type = T;
|
|
|
};
|
|
|
|
|
|
-template <template <typename, typename> class TDeserializer, typename TReader,
|
|
|
- typename TWriter>
|
|
|
-TDeserializer<TReader, TWriter> makeDeserializer(MemoryPool* pool,
|
|
|
- TReader reader,
|
|
|
- TWriter writer) {
|
|
|
+template <template <typename> class TDeserializer, typename TReader>
|
|
|
+TDeserializer<TReader> makeDeserializer(MemoryPool* pool, TReader reader) {
|
|
|
ARDUINOJSON_ASSERT(pool != 0);
|
|
|
- return TDeserializer<TReader, TWriter>(pool, reader, writer);
|
|
|
+ return TDeserializer<TReader>(pool, reader);
|
|
|
}
|
|
|
|
|
|
-template <template <typename, typename> class TDeserializer, typename TStream,
|
|
|
+template <template <typename> class TDeserializer, typename TStream,
|
|
|
typename... Args,
|
|
|
typename = typename enable_if< // issue #1897
|
|
|
!is_integral<typename first_or_void<Args...>::type>::value>::type>
|
|
|
@@ -43,12 +39,11 @@ DeserializationError deserialize(JsonDocument& doc, TStream&& input,
|
|
|
auto pool = VariantAttorney::getPool(doc);
|
|
|
auto options = makeDeserializationOptions(args...);
|
|
|
doc.clear();
|
|
|
- return makeDeserializer<TDeserializer>(pool, reader,
|
|
|
- makeStringStorage(input, pool))
|
|
|
+ return makeDeserializer<TDeserializer>(pool, reader)
|
|
|
.parse(*data, options.filter, options.nestingLimit);
|
|
|
}
|
|
|
|
|
|
-template <template <typename, typename> class TDeserializer, typename TChar,
|
|
|
+template <template <typename> class TDeserializer, typename TChar,
|
|
|
typename Size, typename... Args,
|
|
|
typename = typename enable_if<is_integral<Size>::value>::type>
|
|
|
DeserializationError deserialize(JsonDocument& doc, TChar* input,
|
|
|
@@ -58,8 +53,7 @@ DeserializationError deserialize(JsonDocument& doc, TChar* input,
|
|
|
auto pool = VariantAttorney::getPool(doc);
|
|
|
auto options = makeDeserializationOptions(args...);
|
|
|
doc.clear();
|
|
|
- return makeDeserializer<TDeserializer>(pool, reader,
|
|
|
- makeStringStorage(input, pool))
|
|
|
+ return makeDeserializer<TDeserializer>(pool, reader)
|
|
|
.parse(*data, options.filter, options.nestingLimit);
|
|
|
}
|
|
|
|