Reviewers: ulan,

Message:
Committed patchset #1 manually as r17454.

Description:
Experimental parser: push the data only once.

BUG=
[email protected]

Committed: https://code.google.com/p/v8/source/detail?r=17454

Please review this at https://codereview.chromium.org/57743002/

SVN Base: https://v8.googlecode.com/svn/branches/experimental/parser

Affected files (+8, -1 lines):
  M src/lexer/experimental-scanner.h
  M src/lexer/experimental-scanner.cc


Index: src/lexer/experimental-scanner.cc
diff --git a/src/lexer/experimental-scanner.cc b/src/lexer/experimental-scanner.cc index d110f5eb2f58dc0aed5e3fb4e7c8801340a45dd7..4c71b2a372eb9b6d451a7676fc102f1f9382b20d 100644
--- a/src/lexer/experimental-scanner.cc
+++ b/src/lexer/experimental-scanner.cc
@@ -68,6 +68,7 @@ ExperimentalScanner::ExperimentalScanner(const char* fname,
     : current_(0),
       fetched_(0),
       read_all_at_once_(read_all_at_once),
+      already_pushed_(false),
       source_(0),
       length_(0) {
   file_ = fopen(fname, "rb");
@@ -91,7 +92,12 @@ void ExperimentalScanner::FillTokens() {
   current_ = 0;
   fetched_ = 0;
   if (read_all_at_once_) {
-    scanner_->push(source_, length_ + 1);
+    if (!already_pushed_) {
+      scanner_->push(source_, length_ + 1);
+      already_pushed_ = true;
+    } else {
+      scanner_->push(0, 0);
+    }
   } else {
     uint8_t chars[BUFFER_SIZE];
     int n = static_cast<int>(fread(&chars, 1, BUFFER_SIZE, file_));
Index: src/lexer/experimental-scanner.h
diff --git a/src/lexer/experimental-scanner.h b/src/lexer/experimental-scanner.h index 18d67fd7cdebfac0ab2144e0753b4879a0cfdc50..3f7a141ebef69b12f3811ea92022bd29af265adc 100644
--- a/src/lexer/experimental-scanner.h
+++ b/src/lexer/experimental-scanner.h
@@ -79,6 +79,7 @@ class ExperimentalScanner {
   FILE* file_;
   PushScanner* scanner_;
   bool read_all_at_once_;
+  bool already_pushed_;
   const v8::internal::byte* source_;
   int length_;
 };


--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to