WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Remove virtual functions from StyleImage
0001-Remove-virtual-functions-from-StyleImage.patch (text/plain), 5.42 KB, created by
Tamas Czene
on 2011-07-04 08:13:12 PDT
(
hide
)
Description:
Remove virtual functions from StyleImage
Filename:
MIME Type:
Creator:
Tamas Czene
Created:
2011-07-04 08:13:12 PDT
Size:
5.42 KB
patch
obsolete
>From 3ac86402f07fe3d4a6556e327d43e72ccf29d363 Mon Sep 17 00:00:00 2001 >From: Tamas Czene <Czene.Tamas@stud.u-szeged.hu> >Date: Mon, 4 Jul 2011 17:08:15 +0200 >Subject: [PATCH] Remove virtual functions from StyleImage. > >--- > Source/WebCore/ChangeLog | 23 ++++++++++++++++++++ > Source/WebCore/rendering/style/StyleCachedImage.h | 3 +- > .../WebCore/rendering/style/StyleGeneratedImage.h | 3 +- > Source/WebCore/rendering/style/StyleImage.h | 11 ++++++--- > Source/WebCore/rendering/style/StylePendingImage.h | 3 +- > 5 files changed, 33 insertions(+), 10 deletions(-) > >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index a94c3a7..4e9e3a8 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,26 @@ >+2011-07-04 Tamas Czene <Czene.Tamas@stud.u-szeged.hu> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Remove virtual functions from StyleImage. >+ https://bugs.webkit.org/show_bug.cgi?id=63909 >+ >+ We can remove the virtual "isChachedImage, isPendingImage, isGeneratedImage" functions to speed up the StyleImage part of WebKit. >+ Some profile data shows this part is significant, especially in small CSS-based sites. >+ Removing the virtual functions - removing the calls - makes a small performance progression on this part. >+ >+ * rendering/style/StyleCachedImage.h: >+ (WebCore::StyleCachedImage::StyleCachedImage): >+ * rendering/style/StyleGeneratedImage.h: >+ (WebCore::StyleGeneratedImage::StyleGeneratedImage): >+ * rendering/style/StyleImage.h: >+ (WebCore::StyleImage::isCachedImage): >+ (WebCore::StyleImage::isPendingImage): >+ (WebCore::StyleImage::isGeneratedImage): >+ (WebCore::StyleImage::StyleImage): >+ * rendering/style/StylePendingImage.h: >+ (WebCore::StylePendingImage::StylePendingImage): >+ > 2011-07-04 Alexander Pavlov <apavlov@chromium.org> > > Reviewed by Pavel Feldman. >diff --git a/Source/WebCore/rendering/style/StyleCachedImage.h b/Source/WebCore/rendering/style/StyleCachedImage.h >index 2be6f4c..17bf596 100644 >--- a/Source/WebCore/rendering/style/StyleCachedImage.h >+++ b/Source/WebCore/rendering/style/StyleCachedImage.h >@@ -36,8 +36,6 @@ public: > static PassRefPtr<StyleCachedImage> create(CachedImage* image) { return adoptRef(new StyleCachedImage(image)); } > virtual WrappedImagePtr data() const { return m_image.get(); } > >- virtual bool isCachedImage() const { return true; } >- > virtual PassRefPtr<CSSValue> cssValue() const; > > CachedImage* cachedImage() const { return m_image.get(); } >@@ -58,6 +56,7 @@ private: > StyleCachedImage(CachedImage* image) > : m_image(image) > { >+ m_isCachedImage = true; > } > > CachedResourceHandle<CachedImage> m_image; >diff --git a/Source/WebCore/rendering/style/StyleGeneratedImage.h b/Source/WebCore/rendering/style/StyleGeneratedImage.h >index 8e6076a..b79d3f3 100644 >--- a/Source/WebCore/rendering/style/StyleGeneratedImage.h >+++ b/Source/WebCore/rendering/style/StyleGeneratedImage.h >@@ -40,8 +40,6 @@ public: > > virtual WrappedImagePtr data() const { return m_generator; } > >- virtual bool isGeneratedImage() const { return true; } >- > virtual PassRefPtr<CSSValue> cssValue() const; > > virtual IntSize imageSize(const RenderObject*, float multiplier) const; >@@ -58,6 +56,7 @@ private: > : m_generator(val) > , m_fixedSize(fixedSize) > { >+ m_isGeneratedImage = true; > } > > CSSImageGeneratorValue* m_generator; // The generator holds a reference to us. >diff --git a/Source/WebCore/rendering/style/StyleImage.h b/Source/WebCore/rendering/style/StyleImage.h >index 2c844f6..2f70a82 100644 >--- a/Source/WebCore/rendering/style/StyleImage.h >+++ b/Source/WebCore/rendering/style/StyleImage.h >@@ -62,9 +62,9 @@ public: > virtual PassRefPtr<Image> image(RenderObject*, const IntSize&) const = 0; > virtual WrappedImagePtr data() const = 0; > >- virtual bool isCachedImage() const { return false; } >- virtual bool isPendingImage() const { return false; } >- virtual bool isGeneratedImage() const { return false; } >+ ALWAYS_INLINE bool isCachedImage() const { return m_isCachedImage; } >+ ALWAYS_INLINE bool isPendingImage() const { return m_isPendingImage; } >+ ALWAYS_INLINE bool isGeneratedImage() const { return m_isGeneratedImage; } > > static bool imagesEquivalent(StyleImage* image1, StyleImage* image2) > { >@@ -77,7 +77,10 @@ public: > } > > protected: >- StyleImage() { } >+ bool m_isCachedImage:1; >+ bool m_isPendingImage:1; >+ bool m_isGeneratedImage:1; >+ StyleImage(): m_isCachedImage(false), m_isPendingImage(false), m_isGeneratedImage(false) { } > }; > > } >diff --git a/Source/WebCore/rendering/style/StylePendingImage.h b/Source/WebCore/rendering/style/StylePendingImage.h >index 60c993c..62cce7f 100644 >--- a/Source/WebCore/rendering/style/StylePendingImage.h >+++ b/Source/WebCore/rendering/style/StylePendingImage.h >@@ -41,8 +41,6 @@ public: > > virtual WrappedImagePtr data() const { return m_value; } > >- virtual bool isPendingImage() const { return true; } >- > virtual PassRefPtr<CSSValue> cssValue() const { return m_value; } > CSSImageValue* cssImageValue() const { return m_value; } > >@@ -63,6 +61,7 @@ private: > StylePendingImage(CSSImageValue* value) > : m_value(value) > { >+ m_isPendingImage = true; > } > > CSSImageValue* m_value; // Not retained; it owns us. >-- >1.7.1 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 63909
:
99632
|
99675