From 0f925dfbb70d64bcbbc7bdea000a00cc75f54cd4 Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Thu, 14 Sep 2017 01:09:44 +0300 Subject: [PATCH] type_val: clean up DB code to not use globals This is never going to be nested so the code isn't buggy but using globals is ugly. Signed-off-by: Dan Carpenter --- smatch_type_val.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/smatch_type_val.c b/smatch_type_val.c index 5b9e5696..b8eb052e 100644 --- a/smatch_type_val.c +++ b/smatch_type_val.c @@ -42,10 +42,11 @@ struct stree_stack *fn_type_val_stack; struct stree *fn_type_val; struct stree *global_type_val; -static char *db_vals; -static int get_vals(void *unused, int argc, char **argv, char **azColName) +static int get_vals(void *_db_vals, int argc, char **argv, char **azColName) { - db_vals = alloc_string(argv[0]); + char **db_vals = _db_vals; + + *db_vals = alloc_string(argv[0]); return 0; } @@ -63,6 +64,7 @@ static void match_inline_end(struct expression *expr) int get_db_type_rl(struct expression *expr, struct range_list **rl) { + char *db_vals = NULL; char *member; struct range_list *tmp; struct symbol *type; @@ -71,8 +73,7 @@ int get_db_type_rl(struct expression *expr, struct range_list **rl) if (!member) return 0; - db_vals = NULL; - run_sql(get_vals, NULL, + run_sql(get_vals, &db_vals, "select value from type_value where type = '%s';", member); free_string(member); if (!db_vals) -- 2.11.4.GIT