Diff
Modified: trunk/Source/WebCore/ChangeLog (99559 => 99560)
--- trunk/Source/WebCore/ChangeLog 2011-11-08 13:46:50 UTC (rev 99559)
+++ trunk/Source/WebCore/ChangeLog 2011-11-08 14:01:27 UTC (rev 99560)
@@ -1,3 +1,23 @@
+2011-11-08 Andreas Kling <kl...@webkit.org>
+
+ CSSValue: Devirtualize addSubresourceStyleURLs().
+ <http://webkit.org/b/71805>
+
+ Reviewed by Antti Koivisto.
+
+ Make addSubresourceStyleURLs() non-virtual and call the appropriate
+ subclass implementation based on the subclass type info.
+
+ * css/CSSBorderImageValue.h:
+ * css/CSSFontFaceSrcValue.h:
+ * css/CSSPrimitiveValue.h:
+ * css/CSSReflectValue.h:
+ * css/CSSValue.cpp:
+ (WebCore::CSSValue::addSubresourceStyleURLs):
+ * css/CSSValue.h:
+ (WebCore::CSSValue::addSubresourceStyleURLs):
+ * css/CSSValueList.h:
+
2011-11-08 Andrey Kosyakov <ca...@chromium.org>
Web Inspector: do not show object popover when selection is active
Modified: trunk/Source/WebCore/css/CSSBorderImageValue.h (99559 => 99560)
--- trunk/Source/WebCore/css/CSSBorderImageValue.h 2011-11-08 13:46:50 UTC (rev 99559)
+++ trunk/Source/WebCore/css/CSSBorderImageValue.h 2011-11-08 14:01:27 UTC (rev 99560)
@@ -42,7 +42,7 @@
CSSValue* imageValue() const { return m_image.get(); }
- virtual void addSubresourceStyleURLs(ListHashSet<KURL>&, const CSSStyleSheet*);
+ void addSubresourceStyleURLs(ListHashSet<KURL>&, const CSSStyleSheet*);
// The border image.
RefPtr<CSSValue> m_image;
Modified: trunk/Source/WebCore/css/CSSFontFaceSrcValue.h (99559 => 99560)
--- trunk/Source/WebCore/css/CSSFontFaceSrcValue.h 2011-11-08 13:46:50 UTC (rev 99559)
+++ trunk/Source/WebCore/css/CSSFontFaceSrcValue.h 2011-11-08 14:01:27 UTC (rev 99560)
@@ -64,7 +64,7 @@
virtual String cssText() const;
- virtual void addSubresourceStyleURLs(ListHashSet<KURL>&, const CSSStyleSheet*);
+ void addSubresourceStyleURLs(ListHashSet<KURL>&, const CSSStyleSheet*);
private:
CSSFontFaceSrcValue(const String& resource, bool local)
Modified: trunk/Source/WebCore/css/CSSPrimitiveValue.h (99559 => 99560)
--- trunk/Source/WebCore/css/CSSPrimitiveValue.h 2011-11-08 13:46:50 UTC (rev 99559)
+++ trunk/Source/WebCore/css/CSSPrimitiveValue.h 2011-11-08 14:01:27 UTC (rev 99560)
@@ -211,7 +211,7 @@
bool isQuirkValue() { return m_isQuirkValue; }
- virtual void addSubresourceStyleURLs(ListHashSet<KURL>&, const CSSStyleSheet*);
+ void addSubresourceStyleURLs(ListHashSet<KURL>&, const CSSStyleSheet*);
protected:
CSSPrimitiveValue(ClassType, int ident);
Modified: trunk/Source/WebCore/css/CSSReflectValue.h (99559 => 99560)
--- trunk/Source/WebCore/css/CSSReflectValue.h 2011-11-08 13:46:50 UTC (rev 99559)
+++ trunk/Source/WebCore/css/CSSReflectValue.h 2011-11-08 14:01:27 UTC (rev 99560)
@@ -49,7 +49,7 @@
virtual String cssText() const;
- virtual void addSubresourceStyleURLs(ListHashSet<KURL>&, const CSSStyleSheet*);
+ void addSubresourceStyleURLs(ListHashSet<KURL>&, const CSSStyleSheet*);
private:
CSSReflectValue(CSSReflectionDirection direction, PassRefPtr<CSSPrimitiveValue> offset, PassRefPtr<CSSValue> mask)
Modified: trunk/Source/WebCore/css/CSSValue.cpp (99559 => 99560)
--- trunk/Source/WebCore/css/CSSValue.cpp 2011-11-08 13:46:50 UTC (rev 99559)
+++ trunk/Source/WebCore/css/CSSValue.cpp 2011-11-08 14:01:27 UTC (rev 99560)
@@ -27,6 +27,12 @@
#include "config.h"
#include "CSSValue.h"
+#include "CSSBorderImageValue.h"
+#include "CSSFontFaceSrcValue.h"
+#include "CSSPrimitiveValue.h"
+#include "CSSReflectValue.h"
+#include "CSSValueList.h"
+
namespace WebCore {
CSSValue::Type CSSValue::cssValueType() const
@@ -42,4 +48,18 @@
return CSS_CUSTOM;
}
+void CSSValue::addSubresourceStyleURLs(ListHashSet<KURL>& urls, const CSSStyleSheet* styleSheet)
+{
+ if (isPrimitiveValue())
+ static_cast<CSSPrimitiveValue*>(this)->addSubresourceStyleURLs(urls, styleSheet);
+ else if (isValueList())
+ static_cast<CSSValueList*>(this)->addSubresourceStyleURLs(urls, styleSheet);
+ else if (classType() == BorderImageClass)
+ static_cast<CSSBorderImageValue*>(this)->addSubresourceStyleURLs(urls, styleSheet);
+ else if (classType() == FontFaceSrcClass)
+ static_cast<CSSFontFaceSrcValue*>(this)->addSubresourceStyleURLs(urls, styleSheet);
+ else if (classType() == ReflectClass)
+ static_cast<CSSReflectValue*>(this)->addSubresourceStyleURLs(urls, styleSheet);
}
+
+}
Modified: trunk/Source/WebCore/css/CSSValue.h (99559 => 99560)
--- trunk/Source/WebCore/css/CSSValue.h 2011-11-08 13:46:50 UTC (rev 99559)
+++ trunk/Source/WebCore/css/CSSValue.h 2011-11-08 14:01:27 UTC (rev 99560)
@@ -80,7 +80,7 @@
bool isSVGPaint() const { return m_classType == SVGPaintClass; }
#endif
- virtual void addSubresourceStyleURLs(ListHashSet<KURL>&, const CSSStyleSheet*) { }
+ void addSubresourceStyleURLs(ListHashSet<KURL>&, const CSSStyleSheet*);
protected:
Modified: trunk/Source/WebCore/css/CSSValueList.h (99559 => 99560)
--- trunk/Source/WebCore/css/CSSValueList.h 2011-11-08 13:46:50 UTC (rev 99559)
+++ trunk/Source/WebCore/css/CSSValueList.h 2011-11-08 14:01:27 UTC (rev 99560)
@@ -58,7 +58,7 @@
virtual String cssText() const;
- virtual void addSubresourceStyleURLs(ListHashSet<KURL>&, const CSSStyleSheet*);
+ void addSubresourceStyleURLs(ListHashSet<KURL>&, const CSSStyleSheet*);
protected:
CSSValueList(ClassType, bool isSpaceSeparated);