diff options
| author | serpilliere <serpilliere@users.noreply.github.com> | 2020-04-13 19:21:54 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-04-13 19:21:54 +0200 |
| commit | 7b8354e34da05a6c782f639799ac448c99f4dded (patch) | |
| tree | 60c4c17252a9d39349b74d1712038a0d565c5be3 | |
| parent | 20a8bc7fcd6de75c218be32296003daa9ec902f5 (diff) | |
| parent | 96198f4fe73864f074bde70c930419da8248d4ff (diff) | |
| download | miasm-7b8354e34da05a6c782f639799ac448c99f4dded.tar.gz miasm-7b8354e34da05a6c782f639799ac448c99f4dded.zip | |
Merge pull request #1181 from serpilliere/fix_visit_api
Fix expr api updt
| -rw-r--r-- | miasm/analysis/data_flow.py | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/miasm/analysis/data_flow.py b/miasm/analysis/data_flow.py index 5202fbd9..ef8a8cb0 100644 --- a/miasm/analysis/data_flow.py +++ b/miasm/analysis/data_flow.py @@ -723,19 +723,6 @@ class SSADefUse(DiGraph): - -def expr_test_visit(expr, test): - result = set() - expr.visit( - lambda expr: expr, - lambda expr: test(expr, result) - ) - if result: - return True - else: - return False - - def expr_has_mem(expr): """ Return True if expr contains at least one memory access @@ -1055,7 +1042,11 @@ def visitor_get_stack_accesses(ir_arch_a, expr, stack_vars): def get_stack_accesses(ir_arch_a, expr): result = set() - expr.visit(lambda expr:visitor_get_stack_accesses(ir_arch_a, expr, result)) + def get_stack(expr_to_test): + visitor_get_stack_accesses(ir_arch_a, expr_to_test, result) + return None + visitor = ExprWalk(get_stack) + visitor.visit(expr) return result @@ -1201,11 +1192,13 @@ def memlookup_test(expr, bs, is_addr_ro_variable, result): def memlookup_visit(expr, bs, is_addr_ro_variable): result = set() - expr.visit(lambda expr: expr, - lambda expr: memlookup_test(expr, bs, is_addr_ro_variable, result)) + def retrieve_memlookup(expr_to_test): + memlookup_test(expr_to_test, bs, is_addr_ro_variable, result) + return None + visitor = ExprWalk(retrieve_memlookup) + visitor.visit(expr) return result - def get_memlookup(expr, bs, is_addr_ro_variable): return memlookup_visit(expr, bs, is_addr_ro_variable) |