about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorserpilliere <devnull@localhost>2011-11-07 14:19:58 +0100
committerserpilliere <devnull@localhost>2011-11-07 14:19:58 +0100
commit6d1d5d78a747892e92d9dd013e68596a6a2a826c (patch)
tree39b864c67540f1fd3563a310604ac7e0f4f3e97c
parentb20d4b409f26a3d9109a09984e944979941a0aa8 (diff)
downloadmiasm-6d1d5d78a747892e92d9dd013e68596a6a2a826c.tar.gz
miasm-6d1d5d78a747892e92d9dd013e68596a6a2a826c.zip
fix error raise
-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 = [],