#ifndef IncrementalSweeper_h #define IncrementalSweeper_h #include "HeapTimer.h" #include "MarkedBlock.h" #include #include #include #include namespace JSC { class Heap; class IncrementalSweeper : public HeapTimer { public: static PassOwnPtr create(Heap*); void startSweeping(const HashSet& blockSnapshot); virtual void doWork(); private: #if USE(CF) IncrementalSweeper(Heap*, CFRunLoopRef); void doSweep(double startTime); void scheduleTimer(); void cancelTimer(); unsigned m_currentBlockToSweepIndex; double m_lengthOfLastSweepIncrement; Vector m_blocksToSweep; #else IncrementalSweeper(JSGlobalData*); #endif }; } // namespace JSC #endif