From 3aba340e5f3e18c8992572be250443dbaec2c41f Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Mon, 23 Mar 2009 11:47:06 +0300 Subject: [PATCH] get rid of FUNCTION_CALL_AFTER_HOOK The correct thing was to fix FUNCTION_CALL_HOOK instead of adding another hook. Signed-off-by: Dan Carpenter --- check_null_deref.c | 2 +- smatch.h | 1 - smatch_extra.c | 4 ++-- smatch_flow.c | 5 ++--- smatch_function_hooks.c | 2 +- smatch_hooks.c | 3 --- 6 files changed, 6 insertions(+), 11 deletions(-) diff --git a/check_null_deref.c b/check_null_deref.c index 50bb8cee..b7b9c785 100644 --- a/check_null_deref.c +++ b/check_null_deref.c @@ -437,7 +437,7 @@ void check_null_deref(int id) add_merge_hook(my_id, &merge_func); add_unmatched_state_hook(my_id, &unmatched_state); add_hook(&match_function_def, FUNC_DEF_HOOK); - add_hook(&match_function_call_after, FUNCTION_CALL_AFTER_HOOK); + add_hook(&match_function_call_after, FUNCTION_CALL_HOOK); add_hook(&match_assign, ASSIGNMENT_HOOK); add_hook(&match_condition, CONDITION_HOOK); add_hook(&match_dereferences, DEREF_HOOK); diff --git a/smatch.h b/smatch.h index 6f9bf9af..444e2824 100644 --- a/smatch.h +++ b/smatch.h @@ -50,7 +50,6 @@ enum hook_type { CONDITION_HOOK, WHOLE_CONDITION_HOOK, FUNCTION_CALL_HOOK, - FUNCTION_CALL_AFTER_HOOK, OP_HOOK, DEREF_HOOK, BASE_HOOK, diff --git a/smatch_extra.c b/smatch_extra.c index e57d9083..f43501ce 100644 --- a/smatch_extra.c +++ b/smatch_extra.c @@ -44,7 +44,7 @@ static struct smatch_state *alloc_state(int val) return state; } -static void match_function_call_after(struct expression *expr) +static void match_function_call(struct expression *expr) { struct expression *tmp; struct symbol *sym; @@ -321,7 +321,7 @@ void register_smatch_extra(int id) my_id = id; add_hook(&undef_expr, OP_HOOK); add_hook(&match_function_def, FUNC_DEF_HOOK); - add_hook(&match_function_call_after, FUNCTION_CALL_AFTER_HOOK); + add_hook(&match_function_call, FUNCTION_CALL_HOOK); add_hook(&match_assign, ASSIGNMENT_HOOK); add_hook(&match_declarations, DECLARATION_HOOK); add_hook(&match_unop, OP_HOOK); diff --git a/smatch_flow.c b/smatch_flow.c index da9dda32..2034de98 100644 --- a/smatch_flow.c +++ b/smatch_flow.c @@ -91,10 +91,9 @@ void __split_expr(struct expression *expr) __pop_false_only_stack(); return; case EXPR_CALL: - __pass_to_client(expr, FUNCTION_CALL_HOOK); - __split_expr(expr->fn); split_expr_list(expr->args); - __pass_to_client(expr, FUNCTION_CALL_AFTER_HOOK); + __split_expr(expr->fn); + __pass_to_client(expr, FUNCTION_CALL_HOOK); #ifdef KERNEL if (expr->fn->type == EXPR_SYMBOL && !strcmp(expr->fn->symbol_name->name, "panic")) diff --git a/smatch_function_hooks.c b/smatch_function_hooks.c index 09527552..4c2ac648 100644 --- a/smatch_function_hooks.c +++ b/smatch_function_hooks.c @@ -59,5 +59,5 @@ void register_function_hooks(int id) { my_id = id; hcreate(1000); // We will track maybe 1000 functions. - add_hook(&match_function_call, FUNCTION_CALL_AFTER_HOOK); + add_hook(&match_function_call, FUNCTION_CALL_HOOK); } diff --git a/smatch_hooks.c b/smatch_hooks.c index d937625d..9db32fcb 100644 --- a/smatch_hooks.c +++ b/smatch_hooks.c @@ -53,9 +53,6 @@ void add_hook(void *func, enum hook_type type) case FUNCTION_CALL_HOOK: container->data_type = EXPR_HOOK; break; - case FUNCTION_CALL_AFTER_HOOK: - container->data_type = EXPR_HOOK; - break; case DEREF_HOOK: container->data_type = EXPR_HOOK; break; -- 2.11.4.GIT