diff --git a/src/ArduinoJson/Deserialization/CharPointerReader.hpp b/src/ArduinoJson/Deserialization/CharPointerReader.hpp index 56a09dfb..e210c55a 100644 --- a/src/ArduinoJson/Deserialization/CharPointerReader.hpp +++ b/src/ArduinoJson/Deserialization/CharPointerReader.hpp @@ -6,33 +6,30 @@ namespace ARDUINOJSON_NAMESPACE { -template class UnsafeCharPointerReader { - const TChar* _ptr; + const char* _ptr; public: - explicit UnsafeCharPointerReader(const TChar* ptr) - : _ptr(ptr ? ptr : reinterpret_cast("")) {} + explicit UnsafeCharPointerReader(const char* ptr) + : _ptr(ptr ? ptr : reinterpret_cast("")) {} char read() { return static_cast(*_ptr++); } bool ended() const { - // we cannot know + // we cannot know, that's why it's unsafe return false; } }; -template class SafeCharPointerReader { - const TChar* _ptr; - const TChar* _end; + const char* _ptr; + const char* _end; public: - explicit SafeCharPointerReader(const TChar* ptr, size_t len) - : _ptr(ptr ? ptr : reinterpret_cast("")), - _end(_ptr + len) {} + explicit SafeCharPointerReader(const char* ptr, size_t len) + : _ptr(ptr ? ptr : reinterpret_cast("")), _end(_ptr + len) {} char read() { return static_cast(*_ptr++); @@ -44,18 +41,18 @@ class SafeCharPointerReader { }; template -inline UnsafeCharPointerReader makeReader(TChar* input) { - return UnsafeCharPointerReader(input); +inline UnsafeCharPointerReader makeReader(TChar* input) { + return UnsafeCharPointerReader(reinterpret_cast(input)); } template -inline SafeCharPointerReader makeReader(TChar* input, size_t n) { - return SafeCharPointerReader(input, n); +inline SafeCharPointerReader makeReader(TChar* input, size_t n) { + return SafeCharPointerReader(reinterpret_cast(input), n); } #if ARDUINOJSON_ENABLE_ARDUINO_STRING -inline SafeCharPointerReader makeReader(const String& input) { - return SafeCharPointerReader(input.c_str(), input.length()); +inline SafeCharPointerReader makeReader(const String& input) { + return SafeCharPointerReader(input.c_str(), input.length()); } #endif diff --git a/src/ArduinoJson/StringStorage/StringMover.hpp b/src/ArduinoJson/StringStorage/StringMover.hpp index 5c180ab1..5450e6de 100644 --- a/src/ArduinoJson/StringStorage/StringMover.hpp +++ b/src/ArduinoJson/StringStorage/StringMover.hpp @@ -6,17 +6,16 @@ namespace ARDUINOJSON_NAMESPACE { -template class StringMover { public: class StringBuilder { public: typedef ZeroTerminatedRamStringConst StringType; - StringBuilder(TChar** ptr) : _writePtr(ptr), _startPtr(*ptr) {} + StringBuilder(char** ptr) : _writePtr(ptr), _startPtr(*ptr) {} void append(char c) { - *(*_writePtr)++ = TChar(c); + *(*_writePtr)++ = char(c); } StringType complete() const { @@ -25,17 +24,17 @@ class StringMover { } private: - TChar** _writePtr; - TChar* _startPtr; + char** _writePtr; + char* _startPtr; }; - StringMover(TChar* ptr) : _ptr(ptr) {} + StringMover(char* ptr) : _ptr(ptr) {} StringBuilder startString() { return StringBuilder(&_ptr); } private: - TChar* _ptr; + char* _ptr; }; } // namespace ARDUINOJSON_NAMESPACE diff --git a/src/ArduinoJson/StringStorage/StringStorage.hpp b/src/ArduinoJson/StringStorage/StringStorage.hpp index 28a82000..90db61c8 100644 --- a/src/ArduinoJson/StringStorage/StringStorage.hpp +++ b/src/ArduinoJson/StringStorage/StringStorage.hpp @@ -21,10 +21,10 @@ struct StringStorage { template struct StringStorage::value>::type> { - typedef StringMover type; + typedef StringMover type; static type create(MemoryPool&, TChar* input) { - return type(input); + return type(reinterpret_cast(input)); } };