Index: src/ia32/regexp-macro-assembler-ia32.cc |
=================================================================== |
--- src/ia32/regexp-macro-assembler-ia32.cc (revision 2070) |
+++ src/ia32/regexp-macro-assembler-ia32.cc (working copy) |
@@ -1195,10 +1195,11 @@ |
const byte* new_address = StringCharacterPosition(*subject, start_index); |
if (start_address != new_address) { |
- // If there is a difference, update start and end addresses in the |
- // RegExp stack frame to match the new value. |
+ // If there is a difference, update the object pointer and start and end |
+ // addresses in the RegExp stack frame to match the new value. |
const byte* end_address = frame_entry<const byte* >(re_frame, kInputEnd); |
int byte_length = end_address - start_address; |
+ frame_entry<const String*>(re_frame, kInputString) = *subject; |
frame_entry<const byte*>(re_frame, kInputStart) = new_address; |
frame_entry<const byte*>(re_frame, kInputEnd) = new_address + byte_length; |
} |