[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

andreas.kling at nokia.com andreas.kling at nokia.com
Wed Dec 22 15:15:18 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 57736da91925afd5f81cb07214e2742d6b0197a1
Author: andreas.kling at nokia.com <andreas.kling at nokia.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Oct 29 13:39:24 2010 +0000

    2010-10-29  Andreas Kling  <kling at webkit.org>
    
            Reviewed by Simon Hausmann.
    
            [Qt] GraphicsLayer: Don't notifySyncRequired() more than necessary
            https://bugs.webkit.org/show_bug.cgi?id=48624
    
            Don't queue multiple meta method invocations for notifySyncRequired()
    
            4% speedup on <http://ariya.github.com/clock.htm>
    
            * platform/graphics/qt/GraphicsLayerQt.cpp:
            (WebCore::GraphicsLayerQtImpl::GraphicsLayerQtImpl):
            (WebCore::GraphicsLayerQtImpl::notifySyncRequired):
            (WebCore::GraphicsLayerQtImpl::notifyChange):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@70868 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index b66f272..d22f617 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,19 @@
+2010-10-29  Andreas Kling  <kling at webkit.org>
+
+        Reviewed by Simon Hausmann.
+
+        [Qt] GraphicsLayer: Don't notifySyncRequired() more than necessary
+        https://bugs.webkit.org/show_bug.cgi?id=48624
+
+        Don't queue multiple meta method invocations for notifySyncRequired()
+
+        4% speedup on <http://ariya.github.com/clock.htm>
+
+        * platform/graphics/qt/GraphicsLayerQt.cpp:
+        (WebCore::GraphicsLayerQtImpl::GraphicsLayerQtImpl):
+        (WebCore::GraphicsLayerQtImpl::notifySyncRequired):
+        (WebCore::GraphicsLayerQtImpl::notifyChange):
+
 2010-10-29  Zhenyao Mo  <zmo at google.com>
 
         Reviewed by Chris Marrin.
diff --git a/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp b/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp
index e0941f5..aa7ed2f 100644
--- a/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp
+++ b/WebCore/platform/graphics/qt/GraphicsLayerQt.cpp
@@ -200,6 +200,7 @@ public:
     TransformationMatrix m_transformRelativeToRootLayer;
     bool m_transformAnimationRunning;
     bool m_opacityAnimationRunning;
+    bool m_blockNotifySyncRequired;
 #ifndef QT_NO_GRAPHICSEFFECT
     QWeakPointer<MaskEffectQt> m_maskEffect;
 #endif
@@ -300,6 +301,7 @@ GraphicsLayerQtImpl::GraphicsLayerQtImpl(GraphicsLayerQt* newLayer)
     , m_layer(newLayer)
     , m_transformAnimationRunning(false)
     , m_opacityAnimationRunning(false)
+    , m_blockNotifySyncRequired(false)
     , m_changeMask(NoChanges)
 #if ENABLE(3D_CANVAS)
     , m_gc3D(0)
@@ -593,6 +595,8 @@ void GraphicsLayerQtImpl::paint(QPainter* painter, const QStyleOptionGraphicsIte
 
 void GraphicsLayerQtImpl::notifySyncRequired()
 {
+    m_blockNotifySyncRequired = false;
+
     if (m_layer->client())
         m_layer->client()->notifySyncRequired(m_layer);
 }
@@ -600,8 +604,14 @@ void GraphicsLayerQtImpl::notifySyncRequired()
 void GraphicsLayerQtImpl::notifyChange(ChangeMask changeMask)
 {
     m_changeMask |= changeMask;
+
+    if (m_blockNotifySyncRequired)
+        return;
+
     static QMetaMethod syncMethod = staticMetaObject.method(staticMetaObject.indexOfMethod("notifySyncRequired()"));
     syncMethod.invoke(this, Qt::QueuedConnection);
+
+    m_blockNotifySyncRequired = true;
 }
 
 void GraphicsLayerQtImpl::flushChanges(bool recursive, bool forceUpdateTransform)

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list