From 0ab659d946a0682bce960b3871e6515fd5c32892 Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Mon, 22 Feb 2021 15:18:14 +0300 Subject: [PATCH] states: Rename delete_state() to __delete_state() Back in the day, I used to try use delete_state() for flow analysis, but these days what we do instead is set the state to &undefined. The delete_state() function actually doesn't work for flow analysis because if you're in a condition then the deleted isn't copied to the final strees. The function still serves a purpose for conserving memory. There are some places where we want to delete states just to conserve resources because we know those states won't be used again. It doesn't have a flow analysis implication because we don't care what this states are. And if we don't delete everything that's fine too, so long as we delete some stuff then that uses fewer resources so it's a savings. Anyway, to mark this function as tricky and internal, then rename it from delete_state() to __delete_state(). Signed-off-by: Dan Carpenter --- check_missing_break.c | 2 +- smatch.h | 2 +- smatch_helper.c | 2 +- smatch_states.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/check_missing_break.c b/check_missing_break.c index 4b6b0c03..f0a777bc 100644 --- a/check_missing_break.c +++ b/check_missing_break.c @@ -152,7 +152,7 @@ static void delete_my_states(int owner) } END_FOR_EACH_SM(sm); FOR_EACH_PTR(slist, sm) { - delete_state(sm->owner, sm->name, sm->sym); + __delete_state(sm->owner, sm->name, sm->sym); } END_FOR_EACH_PTR(sm); free_slist(&slist); diff --git a/smatch.h b/smatch.h index f096575c..1a263db9 100644 --- a/smatch.h +++ b/smatch.h @@ -371,7 +371,7 @@ struct sm_state *set_state(int owner, const char *name, struct symbol *sym, struct smatch_state *state); struct sm_state *set_state_expr(int owner, struct expression *expr, struct smatch_state *state); -void delete_state(int owner, const char *name, struct symbol *sym); +void __delete_state(int owner, const char *name, struct symbol *sym); void __delete_all_states_sym(struct symbol *sym); void set_true_false_states(int owner, const char *name, struct symbol *sym, struct smatch_state *true_state, diff --git a/smatch_helper.c b/smatch_helper.c index caa23a56..09da2dc5 100644 --- a/smatch_helper.c +++ b/smatch_helper.c @@ -815,7 +815,7 @@ struct expression *strip_expr_set_parent(struct expression *expr) static void delete_state_tracker(struct tracker *t) { - delete_state(t->owner, t->name, t->sym); + __delete_state(t->owner, t->name, t->sym); __free_tracker(t); } diff --git a/smatch_states.c b/smatch_states.c index 3da03f16..318719b0 100644 --- a/smatch_states.c +++ b/smatch_states.c @@ -472,7 +472,7 @@ free: return ret; } -void delete_state(int owner, const char *name, struct symbol *sym) +void __delete_state(int owner, const char *name, struct symbol *sym) { delete_state_stree(&cur_stree, owner, name, sym); if (cond_true_stack) { -- 2.11.4.GIT