diff options
Diffstat (limited to '')
-rw-r--r-- | src/mods.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/mods.cpp b/src/mods.cpp index 405cf9c79..dae492339 100644 --- a/src/mods.cpp +++ b/src/mods.cpp @@ -26,6 +26,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "subgame.h" #include "settings.h" #include "porting.h" +#include "convert_json.h" static bool parseDependsLine(std::istream &is, std::string &dep, std::set<char> &symbols) @@ -374,7 +375,7 @@ bool ModMetadata::save(const std::string &root_path) } bool w_ok = fs::safeWriteToFile(root_path + DIR_DELIM + m_mod_name, - Json::FastWriter().write(json)); + fastWriteJson(json)); if (w_ok) { m_modified = false; @@ -393,11 +394,14 @@ bool ModMetadata::load(const std::string &root_path) return false; } - Json::Reader reader; Json::Value root; - if (!reader.parse(is, root)) { + Json::CharReaderBuilder builder; + builder.settings_["collectComments"] = false; + std::string errs; + + if (!Json::parseFromStream(builder, is, &root, &errs)) { errorstream << "ModMetadata[" << m_mod_name << "]: failed read data " - "(Json decoding failure)." << std::endl; + "(Json decoding failure). Message: " << errs << std::endl; return false; } |