diff options
Diffstat (limited to 'Source/WebCore/platform/graphics/GeneratorGeneratedImage.h')
-rw-r--r-- | Source/WebCore/platform/graphics/GeneratorGeneratedImage.h | 38 |
1 files changed, 4 insertions, 34 deletions
diff --git a/Source/WebCore/platform/graphics/GeneratorGeneratedImage.h b/Source/WebCore/platform/graphics/GeneratorGeneratedImage.h index f3b9595d3..55ac38d3a 100644 --- a/Source/WebCore/platform/graphics/GeneratorGeneratedImage.h +++ b/Source/WebCore/platform/graphics/GeneratorGeneratedImage.h @@ -58,49 +58,19 @@ protected: virtual void drawPattern(GraphicsContext*, const FloatRect& srcRect, const AffineTransform& patternTransform, const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator, const FloatRect& destRect); + void invalidateCacheTimerFired(DeferrableOneShotTimer<GeneratorGeneratedImage>*); + GeneratorGeneratedImage(PassRefPtr<Generator> generator, const IntSize& size) : m_generator(generator) - , m_cacheTimer(this) + , m_cacheTimer(this, &GeneratorGeneratedImage::invalidateCacheTimerFired, generatedImageCacheClearDelay) { m_size = size; } - - class GeneratedImageCacheTimer : public TimerBase { - public: - GeneratedImageCacheTimer(GeneratorGeneratedImage * parent) - : m_shouldRestartWhenTimerFires(false) - , m_parent(parent) { } - - void restart() - { - if (isActive()) { - m_shouldRestartWhenTimerFires = true; - return; - } - startOneShot(generatedImageCacheClearDelay); - }; - private: - virtual void fired() OVERRIDE - { - if (m_shouldRestartWhenTimerFires) { - m_shouldRestartWhenTimerFires = false; - startOneShot(generatedImageCacheClearDelay); - return; - } - - if (m_parent) { - m_parent->m_cachedImageBuffer.clear(); - m_parent->m_cachedAdjustedSize = IntSize(); - } - }; - bool m_shouldRestartWhenTimerFires; - GeneratorGeneratedImage* m_parent; - }; RefPtr<Generator> m_generator; OwnPtr<ImageBuffer> m_cachedImageBuffer; - GeneratedImageCacheTimer m_cacheTimer; + DeferrableOneShotTimer<GeneratorGeneratedImage> m_cacheTimer; IntSize m_cachedAdjustedSize; unsigned m_cachedGeneratorHash; }; |