Changeset 34838 in webkit for trunk/JavaScriptCore/kjs/JSActivation.cpp
- Timestamp:
- Jun 27, 2008, 3:35:33 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/JSActivation.cpp
r34659 r34838 46 46 JSActivation::~JSActivation() 47 47 { 48 delete d()->registerArray;49 48 delete d(); 50 49 } … … 52 51 void JSActivation::copyRegisters() 53 52 { 54 int num Registers = d()->functionBody->generatedCode().numLocals;55 if (!num Registers)53 int numLocals = d()->functionBody->generatedCode().numLocals; 54 if (!numLocals) 56 55 return; 57 56 58 Register* registerArray = static_cast<Register*>(fastMalloc(numRegisters * sizeof(Register))); 59 60 Register* end = registers(); 61 Register* src = end - numRegisters; 62 Register* dst = registerArray; 63 while (src != end) 64 *dst++ = *src++; 65 66 d()->registerArray = registerArray; 67 d()->registerBase = &d()->registerArray; 68 d()->registerOffset = numRegisters; 57 copyRegisterArray(registers() - numLocals, numLocals); 69 58 } 70 59 … … 136 125 if (d()->argumentsObject) 137 126 d()->argumentsObject->mark(); 138 139 // No need to mark our values if they're still in the regsiter file, since140 // the register file gets marked independently.141 if(!d()->registerArray)142 return;143 144 int numRegisters = d()->functionBody->generatedCode().numLocals;145 Register* end = d()->registerArray + numRegisters;146 for (Register* it = d()->registerArray; it != end; ++it) {147 JSValue* v = (*it).u.jsValue;148 if (!v->marked())149 v->mark();150 }151 127 } 152 128 … … 180 156 JSObject* JSActivation::createArgumentsObject(ExecState* exec) 181 157 { 182 Register* callFrame = registers() - d()->functionBody->generatedCode().numLocals - Machine::CallFrameHeaderSize;158 Register* callFrame = registers() - d()->functionBody->generatedCode().numLocals - RegisterFile::CallFrameHeaderSize; 183 159 184 160 JSFunction* function;
Note:
See TracChangeset
for help on using the changeset viewer.