]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - heap/IncrementalSweeper.h
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / heap / IncrementalSweeper.h
index 60631ee6d3bd8beb593764633a0af3be53803c7e..a86fd1ce4b78990379a8efc183e56c446e5181c1 100644 (file)
 #define IncrementalSweeper_h
 
 #include "HeapTimer.h"
-#include "MarkedBlock.h"
-#include <wtf/HashSet.h>
-#include <wtf/PassOwnPtr.h>
-#include <wtf/RetainPtr.h>
 #include <wtf/Vector.h>
 
 namespace JSC {
 
 class Heap;
+class MarkedBlock;
 
 class IncrementalSweeper : public HeapTimer {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
-    static PassOwnPtr<IncrementalSweeper> create(Heap*);
-    void startSweeping(Vector<MarkedBlock*>&);
-#if PLATFORM(IOS)
-    JS_EXPORT_PRIVATE virtual void doWork();
+#if USE(CF)
+    JS_EXPORT_PRIVATE IncrementalSweeper(Heap*, CFRunLoopRef);
 #else
-    virtual void doWork();
+    explicit IncrementalSweeper(VM*);
 #endif
-    void sweepNextBlock();
+
+    void startSweeping();
+
+    JS_EXPORT_PRIVATE virtual void doWork() override;
+    bool sweepNextBlock();
     void willFinishSweeping();
 
-#if USE(CF) || PLATFORM(BLACKBERRY) || PLATFORM(QT)
 #if USE(CF)
-protected:
-    JS_EXPORT_PRIVATE IncrementalSweeper(Heap*, CFRunLoopRef);
-#else
-private:
-    IncrementalSweeper(Heap*);
-#endif
-    
 private:
     void doSweep(double startTime);
     void scheduleTimer();
     void cancelTimer();
     
-    unsigned m_currentBlockToSweepIndex;
     Vector<MarkedBlock*>& m_blocksToSweep;
-#else
-    
-private:
-    IncrementalSweeper(VM*);
-    
 #endif
 };