Changeset 34838 in webkit for trunk/JavaScriptCore/kjs/JSGlobalObject.cpp
- Timestamp:
- Jun 27, 2008, 3:35:33 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/JSGlobalObject.cpp
r34810 r34838 108 108 for (HashSet<ProgramCodeBlock*>::const_iterator it = codeBlocks().begin(); it != end; ++it) 109 109 (*it)->globalObject = 0; 110 110 111 RegisterFile& registerFile = globalData()->machine->registerFile(); 112 if (registerFile.globalObject() == this) { 113 registerFile.setGlobalObject(0); 114 registerFile.setNumGlobals(0); 115 } 111 116 delete d(); 112 117 } … … 191 196 192 197 _prop.clear(); 193 registerFileStack().current()->clear();194 registerFileStack().current()->addGlobalSlots(1);195 198 symbolTable().clear(); 196 199 … … 411 414 (*it)->mark(); 412 415 413 registerFileStack().mark(globalData()->heap);414 415 416 markIfNeeded(d()->globalExec->exception()); 416 417 … … 458 459 } 459 460 461 void JSGlobalObject::copyGlobalsFrom(RegisterFile& registerFile) 462 { 463 ASSERT(!d()->registerArray); 464 465 int numGlobals = registerFile.numGlobals(); 466 if (!numGlobals) { 467 ASSERT(!d()->registerOffset); 468 d()->registerBase = 0; 469 return; 470 } 471 copyRegisterArray(registerFile.lastGlobal(), numGlobals); 472 } 473 474 void JSGlobalObject::copyGlobalsTo(RegisterFile& registerFile) 475 { 476 JSGlobalObject* lastGlobalObject = registerFile.globalObject(); 477 if (lastGlobalObject && lastGlobalObject != this) 478 lastGlobalObject->copyGlobalsFrom(registerFile); 479 480 registerFile.setGlobalObject(this); 481 registerFile.setNumGlobals(symbolTable().size()); 482 483 if (d()->registerArray) { 484 memcpy(*registerFile.basePointer() - d()->registerOffset, d()->registerArray, d()->registerOffset * sizeof(Register)); 485 setRegisterArray(0, 0); 486 } 487 488 d()->registerBase = registerFile.basePointer(); 489 d()->registerOffset = 0; 490 } 491 460 492 void* JSGlobalObject::operator new(size_t size) 461 493 {
Note:
See TracChangeset
for help on using the changeset viewer.