Index: src/scanner.cc |
diff --git a/src/scanner.cc b/src/scanner.cc |
index 7fd6ef22e7b7537fcc6400ea892a9f46c06f46d4..b66d10b9882c982d99398e28cf2de785e3a1d7ce 100755 |
--- a/src/scanner.cc |
+++ b/src/scanner.cc |
@@ -48,14 +48,18 @@ BufferedUC16CharacterStream::BufferedUC16CharacterStream() |
BufferedUC16CharacterStream::~BufferedUC16CharacterStream() { } |
-void BufferedUC16CharacterStream::PushBack(uc16 character) { |
+void BufferedUC16CharacterStream::PushBack(uc32 character) { |
+ if (character == kEndOfInput) { |
+ pos_--; |
+ return; |
+ } |
if (pushback_limit_ == NULL && buffer_cursor_ > buffer_) { |
// buffer_ is writable, buffer_cursor_ is const pointer. |
- buffer_[--buffer_cursor_ - buffer_] = character; |
+ buffer_[--buffer_cursor_ - buffer_] = static_cast<uc16>(character); |
pos_--; |
return; |
} |
- SlowPushBack(character); |
+ SlowPushBack(static_cast<uc16>(character)); |
} |