about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--miasm/expression/expression.py7
-rw-r--r--miasm/expression/expression_eval_abstract.py12
2 files changed, 14 insertions, 5 deletions
diff --git a/miasm/expression/expression.py b/miasm/expression/expression.py
index 605487f0..f5983e6f 100644
--- a/miasm/expression/expression.py
+++ b/miasm/expression/expression.py
@@ -559,10 +559,7 @@ class ExprSlice(Expr):
     def __contains__(self, e):
         if self == e:
             return True
-        for a in self.args:
-            if  a.__contains__(e):
-                return True
-        return False
+        return self.arg.__contains__(e)
     def __eq__(self, a):
         if not isinstance(a, ExprSlice):
             return False
@@ -777,3 +774,5 @@ def ExprInt64(i):
 
 def ExprInt_from(e, i):
     return ExprInt(tab_uintsize[e.get_size()](i))
+
+
diff --git a/miasm/expression/expression_eval_abstract.py b/miasm/expression/expression_eval_abstract.py
index 99c0ef8c..0424c8da 100644
--- a/miasm/expression/expression_eval_abstract.py
+++ b/miasm/expression/expression_eval_abstract.py
@@ -216,7 +216,7 @@ class eval_abs:
         ex = expr_simp(self.eval_expr(ex, {}))
         if not isinstance(ex, ExprInt):
             return None
-        ptr_diff = int32(ex.arg)
+        ptr_diff = int(int32(ex.arg))
         out = []
         if ptr_diff <0:
             #    [a     ]
@@ -877,3 +877,13 @@ class eval_abs:
 
 
 
+    def dump_id(self):
+        ids = self.pool.pool_id.keys()
+        ids.sort()
+        for i in ids:
+            print i, self.pool.pool_id[i]
+    def dump_mem(self):
+        mems = self.pool.pool_mem.values()
+        mems.sort()
+        for m, v in mems:
+            print m, v