summaryrefslogtreecommitdiffstats
path: root/4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.c
diff options
context:
space:
mode:
authorJonathan Aillet <jonathan.aillet@iot.bzh>2018-06-15 21:08:57 +0200
committerJonathan Aillet <jonathan.aillet@iot.bzh>2018-10-08 15:53:53 +0200
commit8e923d9e07f483d209269d4af9070ed729600f05 (patch)
tree4e37676cbc96893df0473241831bb38024d116c3 /4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.c
parent5bfa3c8ed61c724388b1b3e802cc8fe97b0709de (diff)
Free json objects that should have been freed
Free json objects that should have been freed after use. Change-Id: Ifb3dab9672d0c039292ae05f23ade008fe82ade8 Signed-off-by: Jonathan Aillet <jonathan.aillet@iot.bzh>
Diffstat (limited to '4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.c')
-rw-r--r--4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.c82
1 files changed, 43 insertions, 39 deletions
diff --git a/4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.c b/4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.c
index 082de3a..b192374 100644
--- a/4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.c
+++ b/4a-hal/4a-hal-controllers/4a-hal-controllers-mixer-link.c
@@ -177,7 +177,7 @@ int HalCtlsHandleMixerAttachResponse(AFB_ApiT apiHandle, struct CtlHalSpecificDa
int HalCtlsAttachToMixer(AFB_ApiT apiHandle)
{
- unsigned int err;
+ int err = 0, mixerError;
char *apiToCall, *returnedStatus = NULL, *returnedInfo = NULL;
@@ -188,7 +188,7 @@ int HalCtlsAttachToMixer(AFB_ApiT apiHandle)
struct SpecificHalData *currentCtlHalData, *concurentHalData = NULL;
struct SpecificHalData **firstHalData;
- json_object *returnJ, *toReturnJ;
+ json_object *returnJ = NULL, *toReturnJ;
if(! apiHandle) {
AFB_ApiError(apiHandle, "%s: Can't get current hal api handle", __func__);
@@ -246,21 +246,28 @@ int HalCtlsAttachToMixer(AFB_ApiT apiHandle)
MIXER_ATTACH_VERB,
returnedStatus ? returnedStatus : "not returned",
returnedInfo ? returnedInfo : "not returned");
- return -7;
+ err = -7;
}
- else if(json_object_object_get_ex(returnJ, "response", &toReturnJ)) {
- err = HalCtlsHandleMixerAttachResponse(apiHandle, currentCtlHalData->ctlHalSpecificData, toReturnJ);
- if(err != (int) MIXER_NO_ERROR) {
- AFB_ApiError(apiHandle,
- "%s: Seems that %s call to api %s succeed but this warning was risen by response decoder : %i '%s'",
- __func__,
- MIXER_ATTACH_VERB,
- apiToCall,
- err,
- json_object_get_string(toReturnJ));
- return -8;
- }
-
+ else if(! json_object_object_get_ex(returnJ, "response", &toReturnJ)) {
+ AFB_ApiError(apiHandle,
+ "%s: Seems that %s call to api %s succeed, but response is not valid : '%s'",
+ __func__,
+ MIXER_ATTACH_VERB,
+ apiToCall,
+ json_object_get_string(returnJ));
+ err = -8;
+ }
+ else if((mixerError = HalCtlsHandleMixerAttachResponse(apiHandle, currentCtlHalData->ctlHalSpecificData, toReturnJ)) != (int) MIXER_NO_ERROR) {
+ AFB_ApiError(apiHandle,
+ "%s: Seems that %s call to api %s succeed but this warning was risen by response decoder : %i '%s'",
+ __func__,
+ MIXER_ATTACH_VERB,
+ apiToCall,
+ mixerError,
+ json_object_get_string(toReturnJ));
+ err = -9;
+ }
+ else {
AFB_ApiNotice(apiHandle,
"%s: Seems that %s call to api %s succeed with no warning raised : '%s'",
__func__,
@@ -270,21 +277,17 @@ int HalCtlsAttachToMixer(AFB_ApiT apiHandle)
currentCtlHalData->status = HAL_STATUS_READY;
}
- else {
- AFB_ApiError(apiHandle,
- "%s: Seems that %s call to api %s succeed, but response is not valid : '%s'",
- __func__,
- MIXER_ATTACH_VERB,
- apiToCall,
- json_object_get_string(returnJ));
- return -9;
- }
- return 0;
+ if(returnJ)
+ json_object_put(returnJ);
+
+ return err;
}
int HalCtlsGetInfoFromMixer(AFB_ApiT apiHandle, char *apiToCall, json_object *requestJson, json_object **toReturnJ, char **returnedStatus, char **returnedInfo)
{
+ int err = 0;
+
enum CallError returnedError;
json_object *returnJ, *responseJ;
@@ -313,9 +316,18 @@ int HalCtlsGetInfoFromMixer(AFB_ApiT apiHandle, char *apiToCall, json_object *re
MIXER_INFO_VERB,
*returnedStatus ? *returnedStatus : "not returned",
*returnedInfo ? *returnedInfo : "not returned");
- return -4;
+ err = -4;
+ }
+ else if(! json_object_object_get_ex(returnJ, "response", &responseJ)) {
+ AFB_ApiError(apiHandle,
+ "%s: Seems that %s call to api %s succeed, but response is not valid : '%s'",
+ __func__,
+ MIXER_INFO_VERB,
+ apiToCall,
+ json_object_get_string(returnJ));
+ err = -5;
}
- else if(json_object_object_get_ex(returnJ, "response", &responseJ)) {
+ else {
AFB_ApiNotice(apiHandle,
"%s: Seems that %s call to api %s succeed with no warning raised : '%s'",
__func__,
@@ -323,17 +335,9 @@ int HalCtlsGetInfoFromMixer(AFB_ApiT apiHandle, char *apiToCall, json_object *re
apiToCall,
json_object_get_string(responseJ));
- *toReturnJ = responseJ;
- }
- else {
- AFB_ApiError(apiHandle,
- "%s: Seems that %s call to api %s succeed, but response is not valid : '%s'",
- __func__,
- MIXER_INFO_VERB,
- apiToCall,
- json_object_get_string(returnJ));
- return -8;
+ *toReturnJ = json_object_get(responseJ);
}
- return 0;
+ json_object_put(returnJ);
+ return err;
} \ No newline at end of file