diff options
Diffstat (limited to 'src/4a-internals-hal/4a-internals-hal-value-handler.c')
-rw-r--r-- | src/4a-internals-hal/4a-internals-hal-value-handler.c | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/src/4a-internals-hal/4a-internals-hal-value-handler.c b/src/4a-internals-hal/4a-internals-hal-value-handler.c index 98e29ab..a8b0e2e 100644 --- a/src/4a-internals-hal/4a-internals-hal-value-handler.c +++ b/src/4a-internals-hal/4a-internals-hal-value-handler.c @@ -133,6 +133,10 @@ int InternalHalConvertJsonValueForIntegerControl(afb_api_t apiHandle, } *ConvertedJ = json_object_new_int(convertedValue); + if(! *ConvertedJ) { + AFB_API_ERROR(apiHandle, "Didn't succeed to allocate converted value json integer"); + return -5; + } return 0; } @@ -187,6 +191,11 @@ int InternalHalConvertJsonValueForBooleanControl(afb_api_t apiHandle, return -3; } + if(! *ConvertedJ) { + AFB_API_ERROR(apiHandle, "Didn't succeed to allocate converted value json"); + return -4; + } + return 0; } @@ -207,6 +216,10 @@ int InternalHalConvertJsonValues(afb_api_t apiHandle, count = (toConvertType == json_type_array) ? (int) json_object_array_length(toConvertJ) : 1; convertedArrayJ = json_object_new_array(); + if(! convertedArrayJ) { + AFB_API_ERROR(apiHandle, "Didn't succeed to allocate converted values json array"); + return -1; + } for(idx = 0; idx < count; idx++) { if(toConvertType == json_type_array) @@ -229,7 +242,7 @@ int InternalHalConvertJsonValues(afb_api_t apiHandle, idx, json_object_get_string(toConvertObjectJ)); json_object_put(convertedArrayJ); - return -1; + return -2; } break; @@ -246,7 +259,7 @@ int InternalHalConvertJsonValues(afb_api_t apiHandle, idx, json_object_get_string(toConvertObjectJ)); json_object_put(convertedArrayJ); - return -2; + return -3; } break; @@ -255,7 +268,7 @@ int InternalHalConvertJsonValues(afb_api_t apiHandle, "Conversion not handle for the alsa control type %i", (int) alsaCtlProperties->type); json_object_put(convertedArrayJ); - return -3; + return -4; } json_object_array_put_idx(convertedArrayJ, idx, convertedValueJ); @@ -276,7 +289,7 @@ int InternalHalChangePreviousValuesUsingJson(afb_api_t apiHandle, char *requestedPercentageVariationString, *conversionEnd; - json_object *toChangeObjectJ, *changedArrayJ; + json_object *toChangeObjectJ, *changedArrayJ, *changedValueJ; *ChangedJ = NULL; @@ -325,6 +338,10 @@ int InternalHalChangePreviousValuesUsingJson(afb_api_t apiHandle, count = (int) json_object_array_length(previousControlValuesJ); changedArrayJ = json_object_new_array(); + if(! changedArrayJ) { + AFB_API_ERROR(apiHandle, "Didn't succeed to allocate changed values json array"); + return -1; + } for(idx = 0; idx < count; idx++) { toChangeObjectJ = json_object_array_get_idx(previousControlValuesJ, idx); @@ -335,6 +352,7 @@ int InternalHalChangePreviousValuesUsingJson(afb_api_t apiHandle, json_object_get_string(toChangeObjectJ), idx, count); + json_object_put(changedArrayJ); return -5; } @@ -347,7 +365,14 @@ int InternalHalChangePreviousValuesUsingJson(afb_api_t apiHandle, else changedValue = toChangeValue + requestedVariation; - json_object_array_put_idx(changedArrayJ, idx, json_object_new_int(changedValue)); + changedValueJ = json_object_new_int(changedValue); + if(! changedValueJ) { + AFB_API_ERROR(apiHandle, "Didn't succeed to allocate changed value json integer"); + json_object_put(changedArrayJ); + return -6; + } + + json_object_array_put_idx(changedArrayJ, idx, changedValueJ); } *ChangedJ = changedArrayJ; |