Index: src/ia32/regexp-macro-assembler-ia32.cc |
=================================================================== |
--- src/ia32/regexp-macro-assembler-ia32.cc (revision 7267) |
+++ src/ia32/regexp-macro-assembler-ia32.cc (working copy) |
@@ -56,6 +56,7 @@ |
* |
* 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 |
@@ -866,10 +867,12 @@ |
CodeDesc code_desc; |
masm_->GetCode(&code_desc); |
- Handle<Code> code = Factory::NewCode(code_desc, |
- Code::ComputeFlags(Code::REGEXP), |
- masm_->CodeObject()); |
- PROFILE(RegExpCodeCreateEvent(*code, *source)); |
+ Isolate* isolate = ISOLATE; |
+ Handle<Code> code = |
+ isolate->factory()->NewCode(code_desc, |
+ Code::ComputeFlags(Code::REGEXP), |
+ masm_->CodeObject()); |
+ PROFILE(isolate, RegExpCodeCreateEvent(*code, *source)); |
return Handle<Object>::cast(code); |
} |
@@ -1039,8 +1042,10 @@ |
int RegExpMacroAssemblerIA32::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; |
} |