summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/heap/IncrementalSweeper.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/heap/IncrementalSweeper.h')
-rw-r--r--Source/JavaScriptCore/heap/IncrementalSweeper.h18
1 files changed, 4 insertions, 14 deletions
diff --git a/Source/JavaScriptCore/heap/IncrementalSweeper.h b/Source/JavaScriptCore/heap/IncrementalSweeper.h
index 48f040409..80d674ca9 100644
--- a/Source/JavaScriptCore/heap/IncrementalSweeper.h
+++ b/Source/JavaScriptCore/heap/IncrementalSweeper.h
@@ -1,47 +1,37 @@
#ifndef IncrementalSweeper_h
#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>
-#if USE(CF)
-#include <CoreFoundation/CoreFoundation.h>
-#endif
-
namespace JSC {
class Heap;
-class IncrementalSweeper {
+class IncrementalSweeper : public HeapTimer {
public:
- ~IncrementalSweeper();
-
static PassOwnPtr<IncrementalSweeper> create(Heap*);
void startSweeping(const HashSet<MarkedBlock*>& blockSnapshot);
+ virtual void doWork();
private:
#if USE(CF)
IncrementalSweeper(Heap*, CFRunLoopRef);
- static void timerDidFire(CFRunLoopTimerRef, void*);
void doSweep(double startTime);
void scheduleTimer();
void cancelTimer();
- Heap* m_heap;
unsigned m_currentBlockToSweepIndex;
- RetainPtr<CFRunLoopTimerRef> m_timer;
- RetainPtr<CFRunLoopRef> m_runLoop;
- CFRunLoopTimerContext m_context;
-
double m_lengthOfLastSweepIncrement;
Vector<MarkedBlock*> m_blocksToSweep;
#else
- IncrementalSweeper();
+ IncrementalSweeper(JSGlobalData*);
#endif
};