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
This commit is contained in:
parent
4a51f2792e
commit
8ea13d62cd
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue