[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