while (iter != NULL && ret == 0) {
const char *key = ast_json_object_iter_key(iter);
+
if (ast_json_object_get(object, key) != NULL) {
- ret = ast_json_object_set(object, key, ast_json_object_iter_value(iter));
+ struct ast_json *value = ast_json_object_iter_value(iter);
+
+ if (!value || ast_json_object_set(object, key, ast_json_ref(value))) {
+ ret = -1;
+ }
}
iter = ast_json_object_iter_next(other, iter);
}
while (iter != NULL && ret == 0) {
const char *key = ast_json_object_iter_key(iter);
+
if (ast_json_object_get(object, key) == NULL) {
- ret = ast_json_object_set(object, key, ast_json_object_iter_value(iter));
+ struct ast_json *value = ast_json_object_iter_value(iter);
+
+ if (!value || ast_json_object_set(object, key, ast_json_ref(value))) {
+ ret = -1;
+ }
}
iter = ast_json_object_iter_next(other, iter);
}