diff --git a/src/ipc.cpp b/src/ipc.cpp index e4f06bd..ea88412 100644 --- a/src/ipc.cpp +++ b/src/ipc.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include @@ -22,9 +23,11 @@ std::vector g_logging_err_outs = { #define IPC_JSON_READ(ROOT) \ { \ - Json::Reader reader; \ - if (!reader.parse(std::string(buf->payload, buf->header->size), ROOT, false)) { \ - throw invalid_reply_payload_error(auss_t() << "Failed to parse reply on \"" i3IPC_TYPE_STR "\": " << reader.getFormattedErrorMessages()); \ + Json::CharReaderBuilder builder; \ + std::unique_ptr reader{builder.newCharReader()}; \ + std::string error;\ + if (!reader->parse(buf->payload, buf->payload + buf->header->size, &ROOT, &error)) { \ + throw invalid_reply_payload_error(auss_t() << "Failed to parse reply on \"" i3IPC_TYPE_STR "\": " << error); \ } \ }