| Index: src/ia32/code-stubs-ia32.cc
|
| diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc
|
| index c1747323aeea2f4a61f34d3b46930051de04082f..5f3400f83e8ea649f297fb872325fdfef243355d 100644
|
| --- a/src/ia32/code-stubs-ia32.cc
|
| +++ b/src/ia32/code-stubs-ia32.cc
|
| @@ -91,7 +91,8 @@ void FastNewClosureStub::Generate(MacroAssembler* masm) {
|
| void FastNewContextStub::Generate(MacroAssembler* masm) {
|
| // Try to allocate the context in new space.
|
| Label gc;
|
| - __ AllocateInNewSpace((slots_ * kPointerSize) + FixedArray::kHeaderSize,
|
| + int length = slots_ + Context::MIN_CONTEXT_SLOTS;
|
| + __ AllocateInNewSpace((length * kPointerSize) + FixedArray::kHeaderSize,
|
| eax, ebx, ecx, &gc, TAG_OBJECT);
|
|
|
| // Get the function from the stack.
|
| @@ -100,7 +101,7 @@ void FastNewContextStub::Generate(MacroAssembler* masm) {
|
| // Setup the object header.
|
| __ mov(FieldOperand(eax, HeapObject::kMapOffset), Factory::context_map());
|
| __ mov(FieldOperand(eax, Context::kLengthOffset),
|
| - Immediate(Smi::FromInt(slots_)));
|
| + Immediate(Smi::FromInt(length)));
|
|
|
| // Setup the fixed slots.
|
| __ Set(ebx, Immediate(0)); // Set to NULL.
|
| @@ -118,7 +119,7 @@ void FastNewContextStub::Generate(MacroAssembler* masm) {
|
|
|
| // Initialize the rest of the slots to undefined.
|
| __ mov(ebx, Factory::undefined_value());
|
| - for (int i = Context::MIN_CONTEXT_SLOTS; i < slots_; i++) {
|
| + for (int i = Context::MIN_CONTEXT_SLOTS; i < length; i++) {
|
| __ mov(Operand(eax, Context::SlotOffset(i)), ebx);
|
| }
|
|
|
|
|