[FreeType] REGRESSION(r180563): Introduced crashes
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 26 Feb 2015 16:24:41 +0000 (16:24 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 26 Feb 2015 16:24:41 +0000 (16:24 +0000)
https://bugs.webkit.org/show_bug.cgi?id=142044

Patch by Michael Catanzaro <mcatanzaro@igalia.com> on 2015-02-26
Reviewed by Martin Robinson.

No new tests, should be caught by any woff font test.

Use optionsPattern, not m_pattern, when m_pattern may be null.

* platform/graphics/freetype/FontPlatformDataFreeType.cpp:
(WebCore::FontPlatformData::initializeWithFontFace):

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

Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp

index df557f5..b41501d 100644 (file)
@@ -1,3 +1,17 @@
+2015-02-26  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        [FreeType] REGRESSION(r180563): Introduced crashes
+        https://bugs.webkit.org/show_bug.cgi?id=142044
+
+        Reviewed by Martin Robinson.
+
+        No new tests, should be caught by any woff font test.
+
+        Use optionsPattern, not m_pattern, when m_pattern may be null.
+
+        * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
+        (WebCore::FontPlatformData::initializeWithFontFace):
+
 2015-02-26  Sergio Villar Senin  <svillar@igalia.com>
 
         ASSERTION FAILED: !length.isUndefined() in WebCore::GridLength::GridLength
index 538c9b2..e9c5f28 100644 (file)
@@ -320,14 +320,14 @@ void FontPlatformData::initializeWithFontFace(cairo_font_face_t* fontFace, const
     FcMatrixInit(&fontConfigMatrix);
 
     // These matrices may be stacked in the pattern, so it's our job to get them all and multiply them.
-    for (int i = 0; FcPatternGetMatrix(m_pattern.get(), FC_MATRIX, i, &tempFontConfigMatrix) == FcResultMatch; i++)
+    for (int i = 0; FcPatternGetMatrix(optionsPattern, FC_MATRIX, i, &tempFontConfigMatrix) == FcResultMatch; i++)
         FcMatrixMultiply(&fontConfigMatrix, &fontConfigMatrix, tempFontConfigMatrix);
     cairo_matrix_init(&fontMatrix, fontConfigMatrix.xx, -fontConfigMatrix.yx,
         -fontConfigMatrix.xy, fontConfigMatrix.yy, 0, 0);
 
     // We requested an italic font, but Fontconfig gave us one that was neither oblique nor italic.
     int actualFontSlant;
-    if (fontDescription.italic() && FcPatternGetInteger(m_pattern.get(), FC_SLANT, 0, &actualFontSlant) == FcResultMatch)
+    if (fontDescription.italic() && FcPatternGetInteger(optionsPattern, FC_SLANT, 0, &actualFontSlant) == FcResultMatch)
         m_syntheticOblique = actualFontSlant == FC_SLANT_ROMAN;
 
     // The matrix from FontConfig does not include the scale.