Revision: 9058
Author:   [email protected]
Date:     Mon Aug 29 06:04:33 2011
Log:      Fix for a possible bug in RegExp stack guard.

Review URL: http://codereview.chromium.org/7744051
http://code.google.com/p/v8/source/detail?r=9058

Modified:
 /branches/bleeding_edge/src/arm/regexp-macro-assembler-arm.cc
 /branches/bleeding_edge/src/ia32/regexp-macro-assembler-ia32.cc
 /branches/bleeding_edge/src/x64/regexp-macro-assembler-x64.cc

=======================================
--- /branches/bleeding_edge/src/arm/regexp-macro-assembler-arm.cc Fri Aug 26 06:03:30 2011 +++ /branches/bleeding_edge/src/arm/regexp-macro-assembler-arm.cc Mon Aug 29 06:04:33 2011
@@ -1049,7 +1049,7 @@
   MaybeObject* result = Execution::HandleStackGuardInterrupt();

   if (*code_handle != re_code) {  // Return address no longer valid
-    int delta = *code_handle - re_code;
+    int delta = code_handle->address() - re_code->address();
     // Overwrite the return address on the stack.
     *return_address += delta;
   }
=======================================
--- /branches/bleeding_edge/src/ia32/regexp-macro-assembler-ia32.cc Fri Aug 26 06:03:30 2011 +++ /branches/bleeding_edge/src/ia32/regexp-macro-assembler-ia32.cc Mon Aug 29 06:04:33 2011
@@ -1080,7 +1080,7 @@
   MaybeObject* result = Execution::HandleStackGuardInterrupt();

   if (*code_handle != re_code) {  // Return address no longer valid
-    int delta = *code_handle - re_code;
+    int delta = code_handle->address() - re_code->address();
     // Overwrite the return address on the stack.
     *return_address += delta;
   }
=======================================
--- /branches/bleeding_edge/src/x64/regexp-macro-assembler-x64.cc Fri Aug 26 06:40:25 2011 +++ /branches/bleeding_edge/src/x64/regexp-macro-assembler-x64.cc Mon Aug 29 06:04:33 2011
@@ -1185,7 +1185,7 @@
   MaybeObject* result = Execution::HandleStackGuardInterrupt();

   if (*code_handle != re_code) {  // Return address no longer valid
-    intptr_t delta = *code_handle - re_code;
+    intptr_t delta = code_handle->address() - re_code->address();
     // Overwrite the return address on the stack.
     *return_address += delta;
   }

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to