diff --git a/include/json/reader.h b/include/json/reader.h index 6fe7fba..7bb83b2 100644 --- a/include/json/reader.h +++ b/include/json/reader.h @@ -271,6 +271,10 @@ public: * \throw std::exception if something goes wrong (e.g. invalid settings) */ virtual CharReader* newCharReader() const = 0; + /** \brief Allocate a CharReader via newCharReader(). + * wrap the object in std::unique_ptr to esnure deletion. + * \throw std::exception if something goes wrong (e.g. invalid settings) + */ std::unique_ptr makeCharReader() const; }; // Factory }; // CharReader diff --git a/src/lib_json/json_reader.cpp b/src/lib_json/json_reader.cpp index 364b453..00b560a 100644 --- a/src/lib_json/json_reader.cpp +++ b/src/lib_json/json_reader.cpp @@ -608,7 +608,7 @@ bool Reader::decodeDouble(Token& token, Value& decoded) { value = -std::numeric_limits::infinity(); else if (!std::isinf(value)) return addError( - "'" + String(token.start_, token.end_) + "' is not a number.", token); + "'" + String(token.start_, token.end_) + "' is not a number.", token); } decoded = value; return true; @@ -1660,7 +1660,7 @@ bool OurReader::decodeDouble(Token& token, Value& decoded) { value = -std::numeric_limits::infinity(); else if (!std::isinf(value)) return addError( - "'" + String(token.start_, token.end_) + "' is not a number.", token); + "'" + String(token.start_, token.end_) + "' is not a number.", token); } decoded = value; return true; @@ -1895,7 +1895,6 @@ public: CharReaderBuilder::CharReaderBuilder() { setDefaults(&settings_); } CharReaderBuilder::~CharReaderBuilder() = default; - CharReader* CharReaderBuilder::newCharReader() const { bool collectComments = settings_["collectComments"].asBool(); OurFeatures features = OurFeatures::all(); diff --git a/src/lib_json/json_writer.cpp b/src/lib_json/json_writer.cpp index 239c429..0dd160e 100644 --- a/src/lib_json/json_writer.cpp +++ b/src/lib_json/json_writer.cpp @@ -132,9 +132,8 @@ String valueToString(double value, bool useSpecialFloats, if (!isfinite(value)) { static const char* const reps[2][3] = {{"NaN", "-Infinity", "Infinity"}, {"null", "-1e+9999", "1e+9999"}}; - return reps[useSpecialFloats ? 0 : 1][isnan(value) ? 0 - : (value < 0) ? 1 - : 2]; + return reps[useSpecialFloats ? 0 : 1] + [isnan(value) ? 0 : (value < 0) ? 1 : 2]; } String buffer(size_t(36), '\0');