aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2019-08-30 13:37:11 -0400
committerScott Murray <scott.murray@konsulko.com>2019-08-30 13:44:03 -0400
commit8396e0353e8dc89c4bb3dbd1221885e51c468ee8 (patch)
tree98d1a55a1df63eb8a38524aaf991041620131749
parentf14ecdd52975ae365af5ed32648bf55dddacb8d9 (diff)
Fix JSON response lifecycle issues
Move json_object_put calls to fix lifecycle issues exposed by the json-c upgrade with OE thud. In the newer version, an extra put now triggers an assertion, so rework the affected logic to only call put when needed in the failed request cases. Bug-AGL: SPEC-2707 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ia111e408abf515e3ea7b105c66c1339daa759a87
-rw-r--r--src/api.cpp24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/api.cpp b/src/api.cpp
index bf04453..8573b47 100644
--- a/src/api.cpp
+++ b/src/api.cpp
@@ -60,10 +60,10 @@ void OnRequestNavicoreGetPosition(afb_req req)
{
AFB_REQ_ERROR(req, "%s - %s:%d", response.errMessage.c_str(), __FILE__, __LINE__);
afb_req_fail(req, "failed", "navicore_getposition Bad Request");
- }
- // Json object release
- json_object_put(response.json_data);
+ // Json object release
+ json_object_put(response.json_data);
+ }
AFB_REQ_NOTICE(req, "<-- End %s()", __func__);
}
@@ -98,10 +98,10 @@ void OnRequestNavicoreGetAllRoutes(afb_req req)
{
AFB_REQ_ERROR(req, "%s - %s:%d", response.errMessage.c_str(), __FILE__, __LINE__);
afb_req_fail(req, "failed", "navicore_getallroutes Bad Request");
- }
- // json object release
- json_object_put(response.json_data);
+ // json object release
+ json_object_put(response.json_data);
+ }
AFB_REQ_NOTICE(req, "<-- End %s()", __func__);
}
@@ -146,10 +146,10 @@ void OnRequestNavicoreCreateRoute(afb_req req)
{
AFB_REQ_ERROR(req, "%s - %s:%d", response.errMessage.c_str(), __FILE__, __LINE__);
afb_req_fail(req, "failed", "navicore_createroute Bad Request");
- }
- // json object release
- json_object_put(response.json_data);
+ // json object release
+ json_object_put(response.json_data);
+ }
AFB_REQ_NOTICE(req, "<-- End %s()", __func__);
}
@@ -365,10 +365,10 @@ void OnRequestNavicoreGetAllSessions(afb_req req)
{
AFB_REQ_ERROR(req, "%s - %s:%d", response.errMessage.c_str(), __FILE__, __LINE__);
afb_req_fail(req, "failed", "navicore_getallsessions Bad Request");
- }
- // json object release
- json_object_put(response.json_data);
+ // json object release
+ json_object_put(response.json_data);
+ }
AFB_REQ_NOTICE(req, "<-- End %s()", __func__);
}