Do not compare the first glyph to itself in Font::drawGlyphBuffer()
authorbenjamin@webkit.org <benjamin@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 9 Oct 2011 10:00:09 +0000 (10:00 +0000)
committerbenjamin@webkit.org <benjamin@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 9 Oct 2011 10:00:09 +0000 (10:00 +0000)
https://bugs.webkit.org/show_bug.cgi?id=69715

Reviewed by Andreas Kling.

When looking for glyphs with similar properties, we should
skip the first one since the comparison of fontData
and offset will always fail.

This is covered by the existing tests.

* platform/graphics/FontFastPath.cpp:
(WebCore::Font::drawGlyphBuffer):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@97023 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/FontFastPath.cpp

index 403d7e867359ff446bd7314ea89212ddef8e1b4c..720be64f448b71ae2b3406a7d44ac424d1bb6c43 100644 (file)
@@ -1,3 +1,19 @@
+2011-10-09  Benjamin Poulain  <benjamin@webkit.org>
+
+        Do not compare the first glyph to itself in Font::drawGlyphBuffer()
+        https://bugs.webkit.org/show_bug.cgi?id=69715
+
+        Reviewed by Andreas Kling.
+
+        When looking for glyphs with similar properties, we should
+        skip the first one since the comparison of fontData 
+        and offset will always fail.
+
+        This is covered by the existing tests.
+
+        * platform/graphics/FontFastPath.cpp:
+        (WebCore::Font::drawGlyphBuffer):
+
 2011-10-08  Justin Schuh  <jschuh@chromium.org>
 
         Make ThreadGlobalData members use OwnPtr
index e526242afa3d6ef4c6e15b16d1bca746b06cac1d..02b695b1c7d3b4671d806b28b35e76706d198aa9 100644 (file)
@@ -383,9 +383,9 @@ void Font::drawGlyphBuffer(GraphicsContext* context, const TextRun& run, const G
     const SimpleFontData* fontData = glyphBuffer.fontDataAt(0);
     FloatSize offset = glyphBuffer.offsetAt(0);
     FloatPoint startPoint(point);
-    float nextX = startPoint.x();
+    float nextX = startPoint.x() + glyphBuffer.advanceAt(0);
     int lastFrom = 0;
-    int nextGlyph = 0;
+    int nextGlyph = 1;
 #if ENABLE(SVG_FONTS)
     TextRun::RenderingContext* renderingContext = run.renderingContext();
 #endif