diff options
| author | Camille Mougey <commial@gmail.com> | 2015-02-23 13:35:38 +0100 |
|---|---|---|
| committer | Camille Mougey <commial@gmail.com> | 2015-02-23 13:35:38 +0100 |
| commit | 4713279e25625b33b8867c35d7da686781b8b9a7 (patch) | |
| tree | df358b3d6cc18ca7f8d4060b5266c394a3ce299f /miasm2/expression/expression_helper.py | |
| parent | 855bc7be4f06a0ea7eb4c8a6f009b21703272a30 (diff) | |
| parent | 319c5da3966c9d29ab50c241562dc92b9e0fdc27 (diff) | |
| download | miasm-4713279e25625b33b8867c35d7da686781b8b9a7.tar.gz miasm-4713279e25625b33b8867c35d7da686781b8b9a7.zip | |
Merge pull request #83 from serpilliere/expr_immutable
Expr immutable
Diffstat (limited to 'miasm2/expression/expression_helper.py')
| -rw-r--r-- | miasm2/expression/expression_helper.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/miasm2/expression/expression_helper.py b/miasm2/expression/expression_helper.py index 825cad60..3555530a 100644 --- a/miasm2/expression/expression_helper.py +++ b/miasm2/expression/expression_helper.py @@ -64,9 +64,11 @@ def merge_sliceto_slice(args): final_sources = [] sorted_s = [] for x in sources_int.values(): + x = list(x) # mask int v = x[0].arg & ((1 << (x[2] - x[1])) - 1) - x[0].arg = v + x[0] = m2_expr.ExprInt_from(x[0], v) + x = tuple(x) sorted_s.append((x[1], x)) sorted_s.sort() while sorted_s: @@ -81,7 +83,7 @@ def merge_sliceto_slice(args): a = m2_expr.mod_size2uint[size]( (int(out[0].arg) << (out[1] - s_start)) + int(sorted_s[-1][1][0].arg)) - out[0].arg = a + out[0] = m2_expr.ExprInt(a) sorted_s.pop() out[1] = s_start out[0] = m2_expr.ExprInt_fromsize(size, out[0].arg) |