summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/runtime/GCActivityCallback.h
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-06-20 13:01:08 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-06-20 13:01:08 +0200
commit49233e234e5c787396cadb2cea33b31ae0cd65c1 (patch)
tree5410cb9a8fd53168bb60d62c54b654d86f03c38d /Source/JavaScriptCore/runtime/GCActivityCallback.h
parentb211c645d8ab690f713515dfdc84d80b11c27d2c (diff)
downloadqtwebkit-49233e234e5c787396cadb2cea33b31ae0cd65c1.tar.gz
Imported WebKit commit 3a8c29f35d00659d2ce7a0ccdfa8304f14e82327 (http://svn.webkit.org/repository/webkit/trunk@120813)
New snapshot with Windows build fixes
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)