From 8ea13d62cd07f7784202ca717feda0659b3fb0a0 Mon Sep 17 00:00:00 2001 From: Kevin Harwell Date: Wed, 25 Jul 2018 15:33:22 -0500 Subject: [PATCH] json.c: improve ast_json_to_ast_variables performance When converting from a json object to an ast variables list the conversion algorithm was doing a complete traversal of the entire variables list for every item appended from the json structure. This patch makes it so the list is no longer traversed for each new ast variable being appended. Change-Id: I8bf496a1fc449485150d6db36bfc0354934a3977 --- main/json.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/main/json.c b/main/json.c index e780c01cd7..f8f4c0df94 100644 --- a/main/json.c +++ b/main/json.c @@ -783,6 +783,7 @@ struct ast_json *ast_json_party_id(struct ast_party_id *party) enum ast_json_to_ast_vars_code ast_json_to_ast_variables(struct ast_json *json_variables, struct ast_variable **variables) { struct ast_json_iter *it_json_var; + struct ast_variable *tail = NULL; *variables = NULL; @@ -819,7 +820,7 @@ enum ast_json_to_ast_vars_code ast_json_to_ast_variables(struct ast_json *json_v return AST_JSON_TO_AST_VARS_CODE_OOM; } - ast_variable_list_append(variables, new_var); + tail = ast_variable_list_append_hint(variables, tail, new_var); } return AST_JSON_TO_AST_VARS_CODE_SUCCESS; -- 2.47.2