Fix for a possible bug in RegExp stack guard.
Review URL: http://codereview.chromium.org/7744051 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9058 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
5262061eac
commit
596daba583
@ -1049,7 +1049,7 @@ int RegExpMacroAssemblerARM::CheckStackGuardState(Address* return_address,
|
||||
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;
|
||||
}
|
||||
|
@ -1080,7 +1080,7 @@ int RegExpMacroAssemblerIA32::CheckStackGuardState(Address* return_address,
|
||||
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;
|
||||
}
|
||||
|
@ -1185,7 +1185,7 @@ int RegExpMacroAssemblerX64::CheckStackGuardState(Address* return_address,
|
||||
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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user