Changeset 178284 in webkit for trunk/Source/JavaScriptCore/heap
- Timestamp:
- Jan 12, 2015, 10:26:11 AM (10 years ago)
- Location:
- trunk/Source/JavaScriptCore/heap
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/heap/Heap.cpp
r178266 r178284 505 505 // We gather conservative roots before clearing mark bits because conservative 506 506 // gathering uses the mark bits to determine whether a reference is valid. 507 void* dummy; 507 508 ConservativeRoots conservativeRoots(&m_objectSpace.blocks(), &m_storageSpace); 508 gatherStackRoots(conservativeRoots );509 gatherStackRoots(conservativeRoots, &dummy); 509 510 gatherJSStackRoots(conservativeRoots); 510 511 gatherScratchBufferRoots(conservativeRoots); … … 566 567 } 567 568 568 void Heap::gatherStackRoots(ConservativeRoots& roots )569 void Heap::gatherStackRoots(ConservativeRoots& roots, void** dummy) 569 570 { 570 571 GCPHASE(GatherStackRoots); 571 572 m_jitStubRoutines.clearMarks(); 572 m_machineThreads.gatherConservativeRoots(roots, m_jitStubRoutines, m_codeBlocks );573 m_machineThreads.gatherConservativeRoots(roots, m_jitStubRoutines, m_codeBlocks, dummy); 573 574 } 574 575 -
trunk/Source/JavaScriptCore/heap/Heap.h
r178266 r178284 276 276 277 277 void markRoots(double gcStartTime); 278 void gatherStackRoots(ConservativeRoots& );278 void gatherStackRoots(ConservativeRoots&, void** dummy); 279 279 void gatherJSStackRoots(ConservativeRoots&); 280 280 void gatherScratchBufferRoots(ConservativeRoots&); -
trunk/Source/JavaScriptCore/heap/MachineStackMarker.cpp
r178266 r178284 222 222 #endif 223 223 224 void MachineThreads::gatherFromCurrentThread(ConservativeRoots& conservativeRoots, JITStubRoutineSet& jitStubRoutines, CodeBlockSet& codeBlocks )224 void MachineThreads::gatherFromCurrentThread(ConservativeRoots& conservativeRoots, JITStubRoutineSet& jitStubRoutines, CodeBlockSet& codeBlocks, void* stackCurrent) 225 225 { 226 226 // setjmp forces volatile registers onto the stack 227 227 jmp_buf registers REGISTER_BUFFER_ALIGNMENT; 228 229 228 #if COMPILER(MSVC) 230 229 #pragma warning(push) … … 240 239 conservativeRoots.add(registersBegin, registersEnd, jitStubRoutines, codeBlocks); 241 240 242 // We need to mark the stack top in this function so that callee saves are either already on the stack, 243 // or will be saved in registers. 244 void* stackBegin = ®isters; 241 void* stackBegin = stackCurrent; 245 242 void* stackEnd = wtfThreadData().stack().origin(); 246 243 conservativeRoots.add(stackBegin, stackEnd, jitStubRoutines, codeBlocks); … … 449 446 } 450 447 451 void MachineThreads::gatherConservativeRoots(ConservativeRoots& conservativeRoots, JITStubRoutineSet& jitStubRoutines, CodeBlockSet& codeBlocks )452 { 453 gatherFromCurrentThread(conservativeRoots, jitStubRoutines, codeBlocks );448 void MachineThreads::gatherConservativeRoots(ConservativeRoots& conservativeRoots, JITStubRoutineSet& jitStubRoutines, CodeBlockSet& codeBlocks, void* stackCurrent) 449 { 450 gatherFromCurrentThread(conservativeRoots, jitStubRoutines, codeBlocks, stackCurrent); 454 451 455 452 if (m_threadSpecific) { -
trunk/Source/JavaScriptCore/heap/MachineStackMarker.h
r178266 r178284 40 40 ~MachineThreads(); 41 41 42 void gatherConservativeRoots(ConservativeRoots&, JITStubRoutineSet&, CodeBlockSet& );42 void gatherConservativeRoots(ConservativeRoots&, JITStubRoutineSet&, CodeBlockSet&, void* stackCurrent); 43 43 44 44 JS_EXPORT_PRIVATE void makeUsableFromMultipleThreads(); … … 46 46 47 47 private: 48 void gatherFromCurrentThread(ConservativeRoots&, JITStubRoutineSet&, CodeBlockSet& );48 void gatherFromCurrentThread(ConservativeRoots&, JITStubRoutineSet&, CodeBlockSet&, void* stackCurrent); 49 49 50 50 class Thread;
Note:
See TracChangeset
for help on using the changeset viewer.