about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--miasm/core/asmbloc.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/miasm/core/asmbloc.py b/miasm/core/asmbloc.py
index 54421785..2237af8b 100644
--- a/miasm/core/asmbloc.py
+++ b/miasm/core/asmbloc.py
@@ -152,7 +152,7 @@ class asm_symbol_pool:
 
     def add(self, l):
         if l.name in self.s:
-            fdsf
+            raise ValueError('symbol already exist %r'%l)
         self.s[l.name] = l
         self.s_offset[l.offset] = l
 
@@ -196,7 +196,18 @@ class asm_symbol_pool:
     def __str__(self):
         return reduce(lambda x,y: x+str(y)+'\n', [self.s[l] for l in self.s], "")
 
-
+class interval():
+    # addrs represent interval using the form:
+    # [start_addr1, stop_addr1[ U [start_addr2, stop_addr2[ U ...
+    def __init__(self, addrs):
+        self.intervals = addrs
+    def __contains__(self, ad):
+        for start, stop in self.intervals:
+            if start <= ad < stop:
+                return True
+        return False
+    def __getitem__(self, s):
+        return self.intervals.__getitem__(s)
 
 
 def dis_bloc(mnemo, pool_bin, cur_bloc, offset, job_done, symbol_pool, dont_dis = [],