Revision: 18585
Author:   u...@chromium.org
Date:     Tue Jan 14 13:13:30 2014 UTC
Log:      Experimental lexer: reset literals if the source was moved by GC.

R=ma...@chromium.org

Review URL: https://codereview.chromium.org/138123002
http://code.google.com/p/v8/source/detail?r=18585

Modified:
 /branches/experimental/parser/src/lexer/experimental-scanner.h

=======================================
--- /branches/experimental/parser/src/lexer/experimental-scanner.h Mon Dec 2 17:07:54 2013 UTC +++ /branches/experimental/parser/src/lexer/experimental-scanner.h Tue Jan 14 13:13:30 2014 UTC
@@ -254,6 +254,11 @@
   virtual void Scan() = 0;
virtual bool FillLiteral(const TokenDesc& token, LiteralDesc* literal) = 0;

+  void ResetLiterals() {
+    current_literal_->beg_pos = -1;
+    next_literal_->beg_pos = -1;
+  }
+
   Isolate* isolate_;
   UnicodeCache* unicode_cache_;

@@ -318,11 +323,16 @@
       int start_offset = start_ - buffer_;
       int cursor_offset = cursor_ - buffer_;
       int marker_offset = marker_ - buffer_;
+      int last_octal_end_offset = last_octal_end_ - buffer_;
       buffer_ = new_buffer;
       buffer_end_ = buffer_ + source_handle_->length();
       start_ = buffer_ + start_offset;
       cursor_ = buffer_ + cursor_offset;
       marker_ = buffer_ + marker_offset;
+      if (last_octal_end_ != NULL) {
+        last_octal_end_ = buffer_ + last_octal_end_offset;
+      }
+      ResetLiterals();
     }
   }

--
--
v8-dev mailing list
v8-dev@googlegroups.com
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 v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to