diff options
| author | serpilliere <fabrice.desclaux@cea.fr> | 2016-03-14 21:39:47 +0100 |
|---|---|---|
| committer | Fabrice Desclaux <fabrice.desclaux@cea.fr> | 2016-03-15 15:59:54 +0100 |
| commit | dd49746afca7002985b59a591ddda07e5f8d9029 (patch) | |
| tree | 9b6ff5bf18aeb46b1d45307d5a0ef5c785d16163 | |
| parent | 4c9f108ab0ce059532b7f1f776898912fce49278 (diff) | |
| download | miasm-dd49746afca7002985b59a591ddda07e5f8d9029.tar.gz miasm-dd49746afca7002985b59a591ddda07e5f8d9029.zip | |
Core/asmbloc: remove pending on block split
| -rw-r--r-- | miasm2/core/asmbloc.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/miasm2/core/asmbloc.py b/miasm2/core/asmbloc.py index e4f1db68..96c2f4ec 100644 --- a/miasm2/core/asmbloc.py +++ b/miasm2/core/asmbloc.py @@ -946,6 +946,14 @@ class AsmCFG(DiGraph): log_asmbloc.error("Cannot split %x!!", off) continue + # Remove pending from cur_block + # Links from new_b will be generated in rebuild_edges + for dst in new_b.bto: + if dst.label not in self.pendings: + continue + self.pendings[dst.label] = set(pending for pending in self.pendings[dst.label] + if pending.waiter != cur_block) + # The new block destinations may need to be disassembled if dis_block_callback: offsets_to_dis = set(constraint.label.offset |