From e025887e369a8d6a432757db4e54d18222b1972d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org> Date: Tue, 12 Jul 2022 15:24:20 +0200 Subject: [PATCH] Fix bug in JSON output for derivatives w.r.t. parameters Confusion between a symbol ID and a derivation ID, which could lead to invalid output or crash. (cherry picked from commit 2013056a2c83efbbe83e61994d019c8317a9284f) --- src/DynamicModel.cc | 2 +- src/StaticModel.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc index 77826c2a..1d39cc42 100644 --- a/src/DynamicModel.cc +++ b/src/DynamicModel.cc @@ -6581,7 +6581,7 @@ DynamicModel::writeJsonParamsDerivativesFile(ostream &output, bool writeDetails) << R"(, "param2_col": )" << param2_col + 1; if (writeDetails) - gpp_output << R"(, "var": ")" << symbol_table.getName(var) << R"(")" + gpp_output << R"(, "var": ")" << symbol_table.getName(getSymbIDByDerivID(var)) << R"(")" << R"(, "lag": )" << getLagByDerivID(var) << R"(, "param1": ")" << symbol_table.getName(getSymbIDByDerivID(param1)) << R"(")" << R"(, "param2": ")" << symbol_table.getName(getSymbIDByDerivID(param2)) << R"(")"; diff --git a/src/StaticModel.cc b/src/StaticModel.cc index 964ed5b7..ffea4fb8 100644 --- a/src/StaticModel.cc +++ b/src/StaticModel.cc @@ -2730,7 +2730,7 @@ StaticModel::writeJsonParamsDerivativesFile(ostream &output, bool writeDetails) << R"(, "param2_col": )" << param2_col; if (writeDetails) - third_derivs_output << R"(, "var": ")" << symbol_table.getName(var) << R"(")" + third_derivs_output << R"(, "var": ")" << symbol_table.getName(getSymbIDByDerivID(var)) << R"(")" << R"(, "param1": ")" << symbol_table.getName(getSymbIDByDerivID(param1)) << R"(")" << R"(, "param2": ")" << symbol_table.getName(getSymbIDByDerivID(param2)) << R"(")"; -- GitLab