Commit 57f0a521 authored by vogelheim's avatar vogelheim Committed by Commit bot

Fix ExternalTwobyteStringUtf16CharacterStream::PushBack(kEndOfInput)

PushBack(end-of-input) is a little weird, but since
Utf16CharacterStream::Advance will advance pos_m, but not buffer_cursor_
when at the end of the stream, pushing back the end-of-input token needs
to do the exact inverse.

(The reason Advance does not advance buffer_cursor_ is that buffer_cursor_ is often dereferenced
 directly to access memory and so always needs to point to, well, memory.)
(The PushBack implementation for all other streams looks correct.)

R=rossberg@chromium.org
BUG=chromium:607903
LOG=Y

Review-Url: https://codereview.chromium.org/1941843002
Cr-Commit-Position: refs/heads/master@{#35968}
parent ec2cb208
......@@ -158,8 +158,10 @@ class ExternalTwoByteStringUtf16CharacterStream: public Utf16CharacterStream {
void PushBack(uc32 character) override {
DCHECK(buffer_cursor_ > raw_data_);
buffer_cursor_--;
pos_--;
if (character != kEndOfInput) {
buffer_cursor_--;
}
}
bool SetBookmark() override;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment