Index: src/arm/regexp-macro-assembler-arm.cc |
=================================================================== |
--- src/arm/regexp-macro-assembler-arm.cc (revision 7267) |
+++ src/arm/regexp-macro-assembler-arm.cc (working copy) |
@@ -60,6 +60,7 @@ |
* Each call to a public method should retain this convention. |
* |
* The stack will have the following structure: |
+ * - fp[52] Isolate* isolate (Address of the current isolate) |
* - fp[48] direct_call (if 1, direct call from JavaScript code, |
* if 0, call through the runtime system). |
* - fp[44] stack_area_base (High end of the memory area to use as |
@@ -804,10 +805,10 @@ |
CodeDesc code_desc; |
masm_->GetCode(&code_desc); |
- Handle<Code> code = Factory::NewCode(code_desc, |
+ Handle<Code> code = FACTORY->NewCode(code_desc, |
Code::ComputeFlags(Code::REGEXP), |
masm_->CodeObject()); |
- PROFILE(RegExpCodeCreateEvent(*code, *source)); |
+ PROFILE(Isolate::Current(), RegExpCodeCreateEvent(*code, *source)); |
return Handle<Object>::cast(code); |
} |
@@ -1013,8 +1014,10 @@ |
int RegExpMacroAssemblerARM::CheckStackGuardState(Address* return_address, |
Code* re_code, |
Address re_frame) { |
- if (StackGuard::IsStackOverflow()) { |
- Top::StackOverflow(); |
+ Isolate* isolate = frame_entry<Isolate*>(re_frame, kIsolate); |
+ ASSERT(isolate == Isolate::Current()); |
+ if (isolate->stack_guard()->IsStackOverflow()) { |
+ isolate->StackOverflow(); |
return EXCEPTION; |
} |