diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-06-01 10:36:58 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-06-01 10:36:58 +0200 |
commit | b1e9e47fa11f608ae16bc07f97a2acf95bf80272 (patch) | |
tree | c88c45e80c9c44506e7cdf9a3bb39ebf82a8cd5b /Source/JavaScriptCore/heap/IncrementalSweeper.h | |
parent | be01689f43cf6882cf670d33df49ead1f570c53a (diff) | |
download | qtwebkit-b1e9e47fa11f608ae16bc07f97a2acf95bf80272.tar.gz |
Imported WebKit commit 499c84c99aa98e9870fa7eaa57db476c6d160d46 (http://svn.webkit.org/repository/webkit/trunk@119200)
Weekly update :). Particularly relevant changes for Qt are the use of the WebCore image decoders and direct usage
of libpng/libjpeg if available in the system.
Diffstat (limited to 'Source/JavaScriptCore/heap/IncrementalSweeper.h')
-rw-r--r-- | Source/JavaScriptCore/heap/IncrementalSweeper.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/heap/IncrementalSweeper.h b/Source/JavaScriptCore/heap/IncrementalSweeper.h new file mode 100644 index 000000000..48f040409 --- /dev/null +++ b/Source/JavaScriptCore/heap/IncrementalSweeper.h @@ -0,0 +1,51 @@ +#ifndef IncrementalSweeper_h +#define IncrementalSweeper_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 { +public: + ~IncrementalSweeper(); + + static PassOwnPtr<IncrementalSweeper> create(Heap*); + void startSweeping(const HashSet<MarkedBlock*>& blockSnapshot); + +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(); + +#endif +}; + +} // namespace JSC + +#endif |