Index: src/hydrogen.h |
diff --git a/src/hydrogen.h b/src/hydrogen.h |
index 6c1aba5db66d709231b996207965af7146b758e9..9b26dc8b1b082584e736261a088e10254bc6d412 100644 |
--- a/src/hydrogen.h |
+++ b/src/hydrogen.h |
@@ -233,14 +233,21 @@ class HPredecessorIterator BASE_EMBEDDED { |
class HInstructionIterator BASE_EMBEDDED { |
public: |
- explicit HInstructionIterator(HBasicBlock* block) : instr_(block->first()) { } |
+ explicit HInstructionIterator(HBasicBlock* block) |
+ : instr_(block->first()) { |
+ next_ = Done() ? NULL : instr_->next(); |
+ } |
- bool Done() { return instr_ == NULL; } |
- HInstruction* Current() { return instr_; } |
- void Advance() { instr_ = instr_->next(); } |
+ inline bool Done() const { return instr_ == NULL; } |
+ inline HInstruction* Current() { return instr_; } |
+ inline void Advance() { |
+ instr_ = next_; |
+ next_ = Done() ? NULL : instr_->next(); |
+ } |
private: |
HInstruction* instr_; |
+ HInstruction* next_; |
}; |