Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(168)

Unified Diff: src/interpreter/bytecode-array-random-iterator.cc

Issue 2536653003: [ignition] Rewrite reverse iterator as random iterator (Closed)
Patch Set: Rebase Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/interpreter/bytecode-array-random-iterator.h ('k') | src/interpreter/bytecode-array-reverse-iterator.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/interpreter/bytecode-array-random-iterator.cc
diff --git a/src/interpreter/bytecode-array-reverse-iterator.cc b/src/interpreter/bytecode-array-random-iterator.cc
similarity index 55%
rename from src/interpreter/bytecode-array-reverse-iterator.cc
rename to src/interpreter/bytecode-array-random-iterator.cc
index d4be64eaa11afb4733b7b531c8cb551c60b71659..f499887ccb3e7eb956f35e1fad4e54f2d4eca113 100644
--- a/src/interpreter/bytecode-array-reverse-iterator.cc
+++ b/src/interpreter/bytecode-array-random-iterator.cc
@@ -2,14 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "src/interpreter/bytecode-array-reverse-iterator.h"
+#include "src/interpreter/bytecode-array-random-iterator.h"
#include "src/objects-inl.h"
namespace v8 {
namespace internal {
namespace interpreter {
-BytecodeArrayReverseIterator::BytecodeArrayReverseIterator(
+BytecodeArrayRandomIterator::BytecodeArrayRandomIterator(
Handle<BytecodeArray> bytecode_array, Zone* zone)
: BytecodeArrayAccessor(bytecode_array, 0), offsets_(zone) {
// Run forwards through the bytecode array to determine the offset of each
@@ -18,26 +18,17 @@ BytecodeArrayReverseIterator::BytecodeArrayReverseIterator(
offsets_.push_back(current_offset());
SetOffset(current_offset() + current_bytecode_size());
}
- Reset();
+ GoToStart();
}
-void BytecodeArrayReverseIterator::Advance() {
- it_offsets_++;
- UpdateOffsetFromIterator();
+bool BytecodeArrayRandomIterator::IsValid() const {
+ return current_index_ >= 0 &&
+ static_cast<size_t>(current_index_) < offsets_.size();
}
-void BytecodeArrayReverseIterator::Reset() {
- it_offsets_ = offsets_.rbegin();
- UpdateOffsetFromIterator();
-}
-
-bool BytecodeArrayReverseIterator::done() const {
- return it_offsets_ == offsets_.rend();
-}
-
-void BytecodeArrayReverseIterator::UpdateOffsetFromIterator() {
- if (it_offsets_ != offsets_.rend()) {
- SetOffset(*it_offsets_);
+void BytecodeArrayRandomIterator::UpdateOffsetFromIndex() {
+ if (IsValid()) {
+ SetOffset(offsets_[current_index_]);
}
}
« no previous file with comments | « src/interpreter/bytecode-array-random-iterator.h ('k') | src/interpreter/bytecode-array-reverse-iterator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698