Title: [89248] trunk/Source/WebCore
Revision
89248
Author
[email protected]
Date
2011-06-20 08:50:29 -0700 (Mon, 20 Jun 2011)

Log Message

2011-06-19  Martin Robinson  <[email protected]>

        Reviewed by Xan Lopez.

        [GTK] ASSERTION FAILED: it != gFontDataCache->end() in FontCache.cpp:318
        https://bugs.webkit.org/show_bug.cgi?id=62942

        Fix the == operator overload of the FreeType FontPlatformData to properly make the
        distinction between the hash table deleted value and the hash table empty value.

        No new tests. This is covered by existing tests, which should no longer
        hit assertions.

        * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
        (WebCore::FontPlatformData::operator==): Reorder the logic for determining if two
        FontPlatformData instances are equal. Do a pointer comparison on the Fontconfig patterns,
        instead of using FcPatternEqual. If the two Fontconfig patterns have different pointers
        they were created at different times and the overload should return false.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (89247 => 89248)


--- trunk/Source/WebCore/ChangeLog	2011-06-20 15:03:20 UTC (rev 89247)
+++ trunk/Source/WebCore/ChangeLog	2011-06-20 15:50:29 UTC (rev 89248)
@@ -1,3 +1,22 @@
+2011-06-19  Martin Robinson  <[email protected]>
+
+        Reviewed by Xan Lopez.
+
+        [GTK] ASSERTION FAILED: it != gFontDataCache->end() in FontCache.cpp:318
+        https://bugs.webkit.org/show_bug.cgi?id=62942
+
+        Fix the == operator overload of the FreeType FontPlatformData to properly make the
+        distinction between the hash table deleted value and the hash table empty value.
+
+        No new tests. This is covered by existing tests, which should no longer
+        hit assertions.
+
+        * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
+        (WebCore::FontPlatformData::operator==): Reorder the logic for determining if two
+        FontPlatformData instances are equal. Do a pointer comparison on the Fontconfig patterns,
+        instead of using FcPatternEqual. If the two Fontconfig patterns have different pointers
+        they were created at different times and the overload should return false.
+
 2011-06-20  Ilya Tikhonovsky  <[email protected]>
 
         Reviewed by Yury Semikhatsky.

Modified: trunk/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp (89247 => 89248)


--- trunk/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp	2011-06-20 15:03:20 UTC (rev 89247)
+++ trunk/Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp	2011-06-20 15:50:29 UTC (rev 89248)
@@ -228,13 +228,12 @@
 
 bool FontPlatformData::operator==(const FontPlatformData& other) const
 {
-    if (m_pattern == other.m_pattern)
-        return true;
-    if (!m_pattern || !other.m_pattern)
-        return false;
-    return FcPatternEqual(m_pattern.get(), other.m_pattern.get())
-        && m_scaledFont == other.m_scaledFont && m_font == other.m_font && m_size == other.m_size
-        && m_syntheticOblique == other.m_syntheticOblique && m_syntheticBold == other.m_syntheticBold; 
+    return m_pattern == other.m_pattern
+        && m_scaledFont == other.m_scaledFont
+        && m_font == other.m_font
+        && m_size == other.m_size
+        && m_syntheticOblique == other.m_syntheticOblique
+        && m_syntheticBold == other.m_syntheticBold; 
 }
 
 #ifndef NDEBUG
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to