summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/runtime/GCActivityCallback.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/runtime/GCActivityCallback.h')
-rw-r--r--Source/JavaScriptCore/runtime/GCActivityCallback.h34
1 files changed, 21 insertions, 13 deletions
diff --git a/Source/JavaScriptCore/runtime/GCActivityCallback.h b/Source/JavaScriptCore/runtime/GCActivityCallback.h
index 32077f2b0..18bbd31e0 100644
--- a/Source/JavaScriptCore/runtime/GCActivityCallback.h
+++ b/Source/JavaScriptCore/runtime/GCActivityCallback.h
@@ -29,6 +29,7 @@
#ifndef GCActivityCallback_h
#define GCActivityCallback_h
+#include "HeapTimer.h"
#include <wtf/OwnPtr.h>
#include <wtf/PassOwnPtr.h>
@@ -40,47 +41,54 @@ namespace JSC {
class Heap;
-class GCActivityCallback {
+class GCActivityCallback : public HeapTimer {
public:
- virtual ~GCActivityCallback() { }
virtual void didAllocate(size_t) { }
virtual void willCollect() { }
- virtual void synchronize() { }
virtual void cancel() { }
bool isEnabled() const { return m_enabled; }
void setEnabled(bool enabled) { m_enabled = enabled; }
protected:
- GCActivityCallback()
- : m_enabled(true)
+#if USE(CF)
+ GCActivityCallback(JSGlobalData* globalData, CFRunLoopRef runLoop)
+ : HeapTimer(globalData, runLoop)
+ , m_enabled(true)
+ {
+ }
+# else
+ GCActivityCallback(JSGlobalData* globalData)
+ : HeapTimer(globalData)
+ , m_enabled(true)
{
}
+#endif
bool m_enabled;
};
-struct DefaultGCActivityCallbackPlatformData;
-
class DefaultGCActivityCallback : public GCActivityCallback {
public:
static PassOwnPtr<DefaultGCActivityCallback> create(Heap*);
DefaultGCActivityCallback(Heap*);
- virtual ~DefaultGCActivityCallback();
virtual void didAllocate(size_t);
virtual void willCollect();
- virtual void synchronize();
virtual void cancel();
+
+ virtual void doWork();
#if USE(CF)
protected:
DefaultGCActivityCallback(Heap*, CFRunLoopRef);
- void commonConstructor(Heap*, CFRunLoopRef);
-#endif
-
+
+ void cancelTimer();
+ void scheduleTimer(double);
+
private:
- OwnPtr<DefaultGCActivityCallbackPlatformData> d;
+ double m_delay;
+#endif
};
inline PassOwnPtr<DefaultGCActivityCallback> DefaultGCActivityCallback::create(Heap* heap)