| Index: src/x64/regexp-macro-assembler-x64.cc
|
| diff --git a/src/x64/regexp-macro-assembler-x64.cc b/src/x64/regexp-macro-assembler-x64.cc
|
| index 7a9fdef4136beaaa3f591ab52ced918c9f6cf8da..37bdd5225d3cc827245d6d88b9474999f1382515 100644
|
| --- a/src/x64/regexp-macro-assembler-x64.cc
|
| +++ b/src/x64/regexp-macro-assembler-x64.cc
|
| @@ -68,6 +68,7 @@ namespace internal {
|
| *
|
| * The stack will have the following content, in some order, indexable from the
|
| * frame pointer (see, e.g., kStackHighEnd):
|
| + * - Isolate* isolate (Address of the current isolate)
|
| * - direct_call (if 1, direct call from JavaScript code, if 0 call
|
| * through the runtime system)
|
| * - stack_area_base (High end of the memory area to use as
|
| @@ -1131,8 +1132,10 @@ static T& frame_entry(Address re_frame, int frame_offset) {
|
| int RegExpMacroAssemblerX64::CheckStackGuardState(Address* return_address,
|
| Code* re_code,
|
| Address re_frame) {
|
| - if (Isolate::Current()->stack_guard()->IsStackOverflow()) {
|
| - Isolate::Current()->StackOverflow();
|
| + Isolate* isolate = frame_entry<Isolate*>(re_frame, kIsolate);
|
| + ASSERT(isolate == Isolate::Current());
|
| + if (isolate->stack_guard()->IsStackOverflow()) {
|
| + isolate->StackOverflow();
|
| return EXCEPTION;
|
| }
|
|
|
|
|