about summary refs log tree commit diff stats
path: root/miasm2/expression/expression_helper.py
diff options
context:
space:
mode:
authorCamille Mougey <commial@gmail.com>2015-02-23 13:35:38 +0100
committerCamille Mougey <commial@gmail.com>2015-02-23 13:35:38 +0100
commit4713279e25625b33b8867c35d7da686781b8b9a7 (patch)
treedf358b3d6cc18ca7f8d4060b5266c394a3ce299f /miasm2/expression/expression_helper.py
parent855bc7be4f06a0ea7eb4c8a6f009b21703272a30 (diff)
parent319c5da3966c9d29ab50c241562dc92b9e0fdc27 (diff)
downloadmiasm-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.py6
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)