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.