On Mac, also check for a loca table before calling a font true type.
authorvandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 2 Mar 2012 21:11:54 +0000 (21:11 +0000)
committervandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 2 Mar 2012 21:11:54 +0000 (21:11 +0000)
Review URL: https://codereview.appspot.com/5720056

git-svn-id: http://skia.googlecode.com/svn/trunk@3311 2bbb7eff-a529-9590-31e7-b0007b416f81

src/ports/SkFontHost_mac_coretext.cpp

index c5ac27e..a612555 100644 (file)
@@ -1638,9 +1638,10 @@ SkAdvancedTypefaceMetrics* SkFontHost::GetAdvancedTypefaceMetrics(
     info->fStyle = 0;
 
     // If it's not a truetype font, mark it as 'other'. Assume that TrueType
-    // fonts always have glyf tables. CTFontCopyAttribute() does not always
+    // fonts always have both glyf and loca tables. At the least, this is what
+    // sfntly needs to subset the font. CTFontCopyAttribute() does not always
     // succeed in determining this directly. 
-    if (!GetTableSize(fontID, 'glyf')) {
+    if (!GetTableSize(fontID, 'glyf') || !GetTableSize(fontID, 'loca')) {
         info->fType = SkAdvancedTypefaceMetrics::kOther_Font;
         info->fItalicAngle = 0;
         info->fAscent = 0;