| Index: src/arm/regexp-macro-assembler-arm.cc
|
| diff --git a/src/arm/regexp-macro-assembler-arm.cc b/src/arm/regexp-macro-assembler-arm.cc
|
| index c3a77dd95e292df359df8debfda61363d04e2997..f1e25432e5a6d823641715ab2cfa84e2c1f57ea9 100644
|
| --- a/src/arm/regexp-macro-assembler-arm.cc
|
| +++ b/src/arm/regexp-macro-assembler-arm.cc
|
| @@ -60,6 +60,7 @@ namespace internal {
|
| *
|
| * Each call to a public method should retain this convention.
|
| * The stack will have the following structure:
|
| + * - 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
|
| @@ -992,8 +993,10 @@ static T& frame_entry(Address re_frame, int frame_offset) {
|
| int RegExpMacroAssemblerARM::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;
|
| }
|
|
|
|
|