Title: [133362] trunk/Source/WebCore
Revision
133362
Author
schen...@chromium.org
Date
2012-11-02 15:30:14 -0700 (Fri, 02 Nov 2012)

Log Message

Reduce redundant code in SimpleFontData[platform]
https://bugs.webkit.org/show_bug.cgi?id=97245

Reviewed by Eric Seidel.

Move duplicated code out of platform specific files and into the common file.
This represents all of the methods in SimpleFontData that do not have genuine
platform specific code.

No new tests because there is no change at all in the functionality.

* platform/graphics/SimpleFontData.cpp:
(WebCore):
(WebCore::SimpleFontData::smallCapsFontData): Implementation from platform files.
(WebCore::SimpleFontData::emphasisMarkFontData): Implementation from platform files.
* platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
(WebCore): Removed common code.
* platform/graphics/freetype/SimpleFontDataFreeType.cpp:
(WebCore): Removed common code.
* platform/graphics/mac/SimpleFontDataMac.mm:
(WebCore): Removed common code.
* platform/graphics/pango/SimpleFontDataPango.cpp:
(WebCore): Removed common code.
* platform/graphics/qt/SimpleFontDataQt.cpp:
(WebCore): Removed common code.
* platform/graphics/skia/SimpleFontDataSkia.cpp:
(WebCore): Removed common code.
* platform/graphics/win/SimpleFontDataWin.cpp:
(WebCore): Removed common code.
* platform/graphics/wince/SimpleFontDataWinCE.cpp:
(WebCore): Removed common code.
* platform/graphics/wx/SimpleFontDataWx.cpp:
(WebCore): Removed common code.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (133361 => 133362)


--- trunk/Source/WebCore/ChangeLog	2012-11-02 22:27:19 UTC (rev 133361)
+++ trunk/Source/WebCore/ChangeLog	2012-11-02 22:30:14 UTC (rev 133362)
@@ -1,3 +1,39 @@
+2012-11-02  Stephen Chenney  <schen...@chromium.org>
+
+        Reduce redundant code in SimpleFontData[platform]
+        https://bugs.webkit.org/show_bug.cgi?id=97245
+
+        Reviewed by Eric Seidel.
+
+        Move duplicated code out of platform specific files and into the common file.
+        This represents all of the methods in SimpleFontData that do not have genuine
+        platform specific code.
+
+        No new tests because there is no change at all in the functionality.
+
+        * platform/graphics/SimpleFontData.cpp:
+        (WebCore):
+        (WebCore::SimpleFontData::smallCapsFontData): Implementation from platform files.
+        (WebCore::SimpleFontData::emphasisMarkFontData): Implementation from platform files.
+        * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
+        (WebCore): Removed common code.
+        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
+        (WebCore): Removed common code.
+        * platform/graphics/mac/SimpleFontDataMac.mm:
+        (WebCore): Removed common code.
+        * platform/graphics/pango/SimpleFontDataPango.cpp:
+        (WebCore): Removed common code.
+        * platform/graphics/qt/SimpleFontDataQt.cpp:
+        (WebCore): Removed common code.
+        * platform/graphics/skia/SimpleFontDataSkia.cpp:
+        (WebCore): Removed common code.
+        * platform/graphics/win/SimpleFontDataWin.cpp:
+        (WebCore): Removed common code.
+        * platform/graphics/wince/SimpleFontDataWinCE.cpp:
+        (WebCore): Removed common code.
+        * platform/graphics/wx/SimpleFontDataWx.cpp:
+        (WebCore): Removed common code.
+
 2012-11-02  Adam Barth  <aba...@webkit.org>
 
         memory-instrumentation-cached-images.html is crashing

Modified: trunk/Source/WebCore/platform/graphics/SimpleFontData.cpp (133361 => 133362)


--- trunk/Source/WebCore/platform/graphics/SimpleFontData.cpp	2012-11-02 22:27:19 UTC (rev 133361)
+++ trunk/Source/WebCore/platform/graphics/SimpleFontData.cpp	2012-11-02 22:30:14 UTC (rev 133362)
@@ -41,6 +41,9 @@
 
 namespace WebCore {
 
+const float smallCapsFontSizeMultiplier = 0.7f;
+const float emphasisMarkFontSizeMultiplier = 0.5f;
+
 SimpleFontData::SimpleFontData(const FontPlatformData& platformData, bool isCustomFont, bool isLoading, bool isTextOrientationFallback)
     : m_maxCharWidth(-1)
     , m_avgCharWidth(-1)
@@ -193,6 +196,26 @@
     return m_derivedFontData->uprightOrientation;
 }
 
+PassRefPtr<SimpleFontData> SimpleFontData::smallCapsFontData(const FontDescription& fontDescription) const
+{
+    if (!m_derivedFontData)
+        m_derivedFontData = DerivedFontData::create(isCustomFont());
+    if (!m_derivedFontData->smallCaps)
+        m_derivedFontData->smallCaps = createScaledFontData(fontDescription, smallCapsFontSizeMultiplier);
+
+    return m_derivedFontData->smallCaps;
+}
+
+PassRefPtr<SimpleFontData> SimpleFontData::emphasisMarkFontData(const FontDescription& fontDescription) const
+{
+    if (!m_derivedFontData)
+        m_derivedFontData = DerivedFontData::create(isCustomFont());
+    if (!m_derivedFontData->emphasisMark)
+        m_derivedFontData->emphasisMark = createScaledFontData(fontDescription, emphasisMarkFontSizeMultiplier);
+
+    return m_derivedFontData->emphasisMark;
+}
+
 PassRefPtr<SimpleFontData> SimpleFontData::brokenIdeographFontData() const
 {
     if (!m_derivedFontData)

Modified: trunk/Source/WebCore/platform/graphics/chromium/SimpleFontDataChromiumWin.cpp (133361 => 133362)


--- trunk/Source/WebCore/platform/graphics/chromium/SimpleFontDataChromiumWin.cpp	2012-11-02 22:27:19 UTC (rev 133361)
+++ trunk/Source/WebCore/platform/graphics/chromium/SimpleFontDataChromiumWin.cpp	2012-11-02 22:30:14 UTC (rev 133362)
@@ -119,26 +119,6 @@
     return SimpleFontData::create(FontPlatformData(hfont, scaledSize, m_platformData.orientation()), isCustomFont(), false);
 }
 
-PassRefPtr<SimpleFontData> SimpleFontData::smallCapsFontData(const FontDescription& fontDescription) const
-{
-    if (!m_derivedFontData)
-        m_derivedFontData = DerivedFontData::create(isCustomFont());
-    if (!m_derivedFontData->smallCaps)
-        m_derivedFontData->smallCaps = createScaledFontData(fontDescription, .7);
-
-    return m_derivedFontData->smallCaps;
-}
-
-PassRefPtr<SimpleFontData> SimpleFontData::emphasisMarkFontData(const FontDescription& fontDescription) const
-{
-    if (!m_derivedFontData)
-        m_derivedFontData = DerivedFontData::create(isCustomFont());
-    if (!m_derivedFontData->emphasisMark)
-        m_derivedFontData->emphasisMark = createScaledFontData(fontDescription, .5);
-
-    return m_derivedFontData->emphasisMark;
-}
-
 bool SimpleFontData::containsCharacters(const UChar* characters, int length) const
 {
   // This used to be implemented with IMLangFontLink2, but since that code has

Modified: trunk/Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp (133361 => 133362)


--- trunk/Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp	2012-11-02 22:27:19 UTC (rev 133361)
+++ trunk/Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp	2012-11-02 22:30:14 UTC (rev 133362)
@@ -98,27 +98,6 @@
                                                         m_platformData.syntheticOblique()), isCustomFont(), false);
 }
 
-PassRefPtr<SimpleFontData> SimpleFontData::smallCapsFontData(const FontDescription& fontDescription) const
-{
-    if (!m_derivedFontData)
-        m_derivedFontData = DerivedFontData::create(isCustomFont());
-    // FIXME: I think we want to ask FontConfig for the right font again.
-    if (!m_derivedFontData->smallCaps)
-        m_derivedFontData->smallCaps = createScaledFontData(fontDescription, .7);
-
-    return m_derivedFontData->smallCaps;
-}
-
-PassRefPtr<SimpleFontData> SimpleFontData::emphasisMarkFontData(const FontDescription& fontDescription) const
-{
-    if (!m_derivedFontData)
-        m_derivedFontData = DerivedFontData::create(isCustomFont());
-    if (!m_derivedFontData->emphasisMark)
-        m_derivedFontData->emphasisMark = createScaledFontData(fontDescription, .5);
-
-    return m_derivedFontData->emphasisMark;
-}
-
 bool SimpleFontData::containsCharacters(const UChar* characters, int length) const
 {
     ASSERT(m_platformData.scaledFont());

Modified: trunk/Source/WebCore/platform/graphics/mac/SimpleFontDataMac.mm (133361 => 133362)


--- trunk/Source/WebCore/platform/graphics/mac/SimpleFontDataMac.mm	2012-11-02 22:27:19 UTC (rev 133361)
+++ trunk/Source/WebCore/platform/graphics/mac/SimpleFontDataMac.mm	2012-11-02 22:30:14 UTC (rev 133362)
@@ -52,8 +52,6 @@
 
 namespace WebCore {
   
-const float smallCapsFontSizeMultiplier = 0.7f;
-
 static bool fontHasVerticalGlyphs(CTFontRef ctFont)
 {
     // The check doesn't look neat but this is what AppKit does for vertical writing...
@@ -352,26 +350,6 @@
     return 0;
 }
 
-PassRefPtr<SimpleFontData> SimpleFontData::smallCapsFontData(const FontDescription& fontDescription) const
-{
-    if (!m_derivedFontData)
-        m_derivedFontData = DerivedFontData::create(isCustomFont());
-    if (!m_derivedFontData->smallCaps)
-        m_derivedFontData->smallCaps = createScaledFontData(fontDescription, smallCapsFontSizeMultiplier);
-
-    return m_derivedFontData->smallCaps;
-}
-
-PassRefPtr<SimpleFontData> SimpleFontData::emphasisMarkFontData(const FontDescription& fontDescription) const
-{
-    if (!m_derivedFontData)
-        m_derivedFontData = DerivedFontData::create(isCustomFont());
-    if (!m_derivedFontData->emphasisMark)
-        m_derivedFontData->emphasisMark = createScaledFontData(fontDescription, .5f);
-
-    return m_derivedFontData->emphasisMark;
-}
-
 bool SimpleFontData::containsCharacters(const UChar* characters, int length) const
 {
     NSString *string = [[NSString alloc] initWithCharactersNoCopy:const_cast<unichar*>(characters) length:length freeWhenDone:NO];

Modified: trunk/Source/WebCore/platform/graphics/pango/SimpleFontDataPango.cpp (133361 => 133362)


--- trunk/Source/WebCore/platform/graphics/pango/SimpleFontDataPango.cpp	2012-11-02 22:27:19 UTC (rev 133361)
+++ trunk/Source/WebCore/platform/graphics/pango/SimpleFontDataPango.cpp	2012-11-02 22:30:14 UTC (rev 133362)
@@ -92,26 +92,6 @@
     return SimpleFontData::create(platformData);
 }
 
-PassRefPtr<SimpleFontData> SimpleFontData::smallCapsFontData(const FontDescription& fontDescription) const
-{
-    if (!m_derivedFontData)
-        m_derivedFontData = DerivedFontData::create(isCustomFont());
-    if (!m_derivedFontData->smallCaps)
-        m_derivedFontData->smallCaps = createScaledFontData(fontDescription, .7);
-
-    return m_derivedFontData->smallCaps;
-}
-
-PassRefPtr<SimpleFontData> SimpleFontData::emphasisMarkFontData(const FontDescription& fontDescription) const
-{
-    if (!m_derivedFontData)
-        m_derivedFontData = DerivedFontData::create(isCustomFont());
-    if (!m_derivedFontData->emphasisMark)
-        m_derivedFontData->emphasisMark = createScaledFontData(fontDescription, .5);
-
-    return m_derivedFontData->emphasisMark;
-}
-
 bool SimpleFontData::containsCharacters(const UChar* characters, int length) const
 {
     bool result = true;

Modified: trunk/Source/WebCore/platform/graphics/qt/SimpleFontDataQt.cpp (133361 => 133362)


--- trunk/Source/WebCore/platform/graphics/qt/SimpleFontDataQt.cpp	2012-11-02 22:27:19 UTC (rev 133361)
+++ trunk/Source/WebCore/platform/graphics/qt/SimpleFontDataQt.cpp	2012-11-02 22:30:14 UTC (rev 133362)
@@ -34,9 +34,6 @@
     m_treatAsFixedPitch = false;
 }
 
-static const float smallCapsFraction = 0.7;
-static const float emphasisMarkFraction = 0.5;
-
 bool SimpleFontData::containsCharacters(const UChar* characters, int length) const
 {
     QRawFont rawFont(m_platformData.rawFont());
@@ -67,26 +64,6 @@
     return SimpleFontData::create(FontPlatformData(m_platformData, scaledSize), isCustomFont(), false);
 }
 
-PassRefPtr<SimpleFontData> SimpleFontData::smallCapsFontData(const FontDescription& fontDescription) const
-{
-    if (!m_derivedFontData)
-        m_derivedFontData = DerivedFontData::create(isCustomFont());
-    if (!m_derivedFontData->smallCaps)
-        m_derivedFontData->smallCaps = createScaledFontData(fontDescription, smallCapsFraction);
-
-    return m_derivedFontData->smallCaps;
-}
-
-PassRefPtr<SimpleFontData> SimpleFontData::emphasisMarkFontData(const FontDescription& fontDescription) const
-{
-    if (!m_derivedFontData)
-        m_derivedFontData = DerivedFontData::create(isCustomFont());
-    if (!m_derivedFontData->emphasisMark)
-        m_derivedFontData->emphasisMark = createScaledFontData(fontDescription, emphasisMarkFraction);
-
-    return m_derivedFontData->emphasisMark;
-}
-
 FloatRect SimpleFontData::platformBoundsForGlyph(Glyph) const
 {
     notImplemented();

Modified: trunk/Source/WebCore/platform/graphics/skia/SimpleFontDataSkia.cpp (133361 => 133362)


--- trunk/Source/WebCore/platform/graphics/skia/SimpleFontDataSkia.cpp	2012-11-02 22:27:19 UTC (rev 133361)
+++ trunk/Source/WebCore/platform/graphics/skia/SimpleFontDataSkia.cpp	2012-11-02 22:30:14 UTC (rev 133362)
@@ -47,9 +47,6 @@
 
 namespace WebCore {
 
-// Smallcaps versions of fonts are 70% the size of the normal font.
-static const float smallCapsFraction = 0.7f;
-static const float emphasisMarkFraction = .5;
 // This is the largest VDMX table which we'll try to load and parse.
 static const size_t maxVDMXTableSize = 1024 * 1024; // 1 MB
 
@@ -183,26 +180,6 @@
     return SimpleFontData::create(FontPlatformData(m_platformData, scaledSize), isCustomFont(), false);
 }
 
-PassRefPtr<SimpleFontData> SimpleFontData::smallCapsFontData(const FontDescription& fontDescription) const
-{
-    if (!m_derivedFontData)
-        m_derivedFontData = DerivedFontData::create(isCustomFont());
-    if (!m_derivedFontData->smallCaps)
-        m_derivedFontData->smallCaps = createScaledFontData(fontDescription, smallCapsFraction);
-
-    return m_derivedFontData->smallCaps;
-}
-
-PassRefPtr<SimpleFontData> SimpleFontData::emphasisMarkFontData(const FontDescription& fontDescription) const
-{
-    if (!m_derivedFontData)
-        m_derivedFontData = DerivedFontData::create(isCustomFont());
-    if (!m_derivedFontData->emphasisMark)
-        m_derivedFontData->emphasisMark = createScaledFontData(fontDescription, emphasisMarkFraction);
-
-    return m_derivedFontData->emphasisMark;
-}
-
 bool SimpleFontData::containsCharacters(const UChar* characters, int length) const
 {
     SkPaint paint;

Modified: trunk/Source/WebCore/platform/graphics/win/SimpleFontDataWin.cpp (133361 => 133362)


--- trunk/Source/WebCore/platform/graphics/win/SimpleFontDataWin.cpp	2012-11-02 22:27:19 UTC (rev 133361)
+++ trunk/Source/WebCore/platform/graphics/win/SimpleFontDataWin.cpp	2012-11-02 22:30:14 UTC (rev 133362)
@@ -148,26 +148,6 @@
     return SimpleFontData::create(FontPlatformData(hfont, scaledSize, m_platformData.syntheticBold(), m_platformData.syntheticOblique(), m_platformData.useGDI()), isCustomFont(), false);
 }
 
-PassRefPtr<SimpleFontData> SimpleFontData::smallCapsFontData(const FontDescription& fontDescription) const
-{
-    if (!m_derivedFontData)
-        m_derivedFontData = DerivedFontData::create(isCustomFont());
-    if (!m_derivedFontData->smallCaps)
-        m_derivedFontData->smallCaps = createScaledFontData(fontDescription, cSmallCapsFontSizeMultiplier);
-
-    return m_derivedFontData->smallCaps;
-}
-
-PassRefPtr<SimpleFontData> SimpleFontData::emphasisMarkFontData(const FontDescription& fontDescription) const
-{
-    if (!m_derivedFontData)
-        m_derivedFontData = DerivedFontData::create(isCustomFont());
-    if (!m_derivedFontData->emphasisMark)
-        m_derivedFontData->emphasisMark = createScaledFontData(fontDescription, .5);
-
-    return m_derivedFontData->emphasisMark;
-}
-
 bool SimpleFontData::containsCharacters(const UChar* characters, int length) const
 {
     // FIXME: Support custom fonts.

Modified: trunk/Source/WebCore/platform/graphics/wince/SimpleFontDataWinCE.cpp (133361 => 133362)


--- trunk/Source/WebCore/platform/graphics/wince/SimpleFontDataWinCE.cpp	2012-11-02 22:27:19 UTC (rev 133361)
+++ trunk/Source/WebCore/platform/graphics/wince/SimpleFontDataWinCE.cpp	2012-11-02 22:30:14 UTC (rev 133362)
@@ -75,26 +75,6 @@
     return SimpleFontData::create(*result);
 }
 
-PassRefPtr<SimpleFontData> SimpleFontData::smallCapsFontData(const FontDescription& fontDescription) const
-{
-    if (!m_derivedFontData)
-        m_derivedFontData = DerivedFontData::create(isCustomFont());
-    if (!m_derivedFontData->smallCaps)
-        m_derivedFontData->smallCaps = createScaledFontData(fontDescription, .7);
-
-    return m_derivedFontData->smallCaps;
-}
-
-PassRefPtr<SimpleFontData> SimpleFontData::emphasisMarkFontData(const FontDescription& fontDescription) const
-{
-    if (!m_derivedFontData)
-        m_derivedFontData = DerivedFontData::create(isCustomFont());
-    if (!m_derivedFontData->emphasisMark)
-        m_derivedFontData->emphasisMark = createScaledFontData(fontDescription, .5);
-
-    return m_derivedFontData->emphasisMark;
-}
-
 DWORD getKnownFontCodePages(const wchar_t* family);
 
 bool SimpleFontData::containsCharacters(const UChar* characters, int length) const

Modified: trunk/Source/WebCore/platform/graphics/wx/SimpleFontDataWx.cpp (133361 => 133362)


--- trunk/Source/WebCore/platform/graphics/wx/SimpleFontDataWx.cpp	2012-11-02 22:27:19 UTC (rev 133361)
+++ trunk/Source/WebCore/platform/graphics/wx/SimpleFontDataWx.cpp	2012-11-02 22:30:14 UTC (rev 133362)
@@ -98,26 +98,6 @@
     return SimpleFontData::create(platformData, isCustomFont(), false);
 }
 
-PassRefPtr<SimpleFontData> SimpleFontData::smallCapsFontData(const FontDescription& fontDescription) const
-{
-    if (!m_derivedFontData)
-        m_derivedFontData = DerivedFontData::create(isCustomFont());
-    if (!m_derivedFontData->smallCaps)
-        m_derivedFontData->smallCaps = createScaledFontData(fontDescription, .7);
-
-    return m_derivedFontData->smallCaps;
-}
-
-PassRefPtr<SimpleFontData> SimpleFontData::emphasisMarkFontData(const FontDescription& fontDescription) const
-{
-    if (!m_derivedFontData)
-        m_derivedFontData = DerivedFontData::create(isCustomFont());
-    if (!m_derivedFontData->emphasisMark)
-        m_derivedFontData->emphasisMark = createScaledFontData(fontDescription, .5);
-
-    return m_derivedFontData->emphasisMark;
-}
-
 bool SimpleFontData::containsCharacters(const UChar* characters, int length) const
 {
     // FIXME: We will need to implement this to load non-ASCII encoding sites
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to