Add DexInstructionIterator and use it a few places
Motivation:
Want to start abstracting away dex specific functionality to enable
CompactDex. Adding an iterator will enable CompactDex iteration to
work differently than normal dex iteration.
Will eventually replace CodeItemIterator.
Bug: 63756964
Test: test-art-host
Change-Id: I90e67c1a994b7698aaac0523a82816b0a003fbdc
diff --git a/dexlayout/dex_ir.h b/dexlayout/dex_ir.h
index 362c08b..5dcc87d 100644
--- a/dexlayout/dex_ir.h
+++ b/dexlayout/dex_ir.h
@@ -947,6 +947,11 @@
void Accept(AbstractDispatcher* dispatch) { dispatch->Dispatch(this); }
+ IterationRange<DexInstructionIterator> Instructions() const {
+ return MakeIterationRange(DexInstructionIterator(Insns()),
+ DexInstructionIterator(Insns() + InsnsSize()));
+ }
+
private:
uint16_t registers_size_;
uint16_t ins_size_;