| Index: src/core/SkTypeface.cpp
 | 
| diff --git a/src/core/SkTypeface.cpp b/src/core/SkTypeface.cpp
 | 
| index 09a64324af2ea25cfef458b059dc1b65ce865eb3..e419391b2de401152f374d053eee5fd0c8da4e72 100644
 | 
| --- a/src/core/SkTypeface.cpp
 | 
| +++ b/src/core/SkTypeface.cpp
 | 
| @@ -6,8 +6,10 @@
 | 
|   */
 | 
|  
 | 
|  #include "SkAdvancedTypefaceMetrics.h"
 | 
| +#include "SkEndian.h"
 | 
|  #include "SkFontDescriptor.h"
 | 
|  #include "SkFontHost.h"
 | 
| +#include "SkOTTable_OS_2.h"
 | 
|  #include "SkStream.h"
 | 
|  #include "SkTypeface.h"
 | 
|  
 | 
| @@ -259,7 +261,26 @@ SkAdvancedTypefaceMetrics* SkTypeface::getAdvancedTypefaceMetrics(
 | 
|                                  SkAdvancedTypefaceMetrics::PerGlyphInfo info,
 | 
|                                  const uint32_t* glyphIDs,
 | 
|                                  uint32_t glyphIDsCount) const {
 | 
| -    return this->onGetAdvancedTypefaceMetrics(info, glyphIDs, glyphIDsCount);
 | 
| +    SkAdvancedTypefaceMetrics* result =
 | 
| +            this->onGetAdvancedTypefaceMetrics(info, glyphIDs, glyphIDsCount);
 | 
| +    if (result && result->fType == SkAdvancedTypefaceMetrics::kTrueType_Font) {
 | 
| +        struct SkOTTableOS2 os2table;
 | 
| +        if (this->getTableData(SkEndian_SwapBE32(SkOTTableOS2::TAG), 0,
 | 
| +                               sizeof(os2table), &os2table) > 0) {
 | 
| +            if (os2table.version.v2.fsType.field.Restricted ||
 | 
| +                    os2table.version.v2.fsType.field.Bitmap) {
 | 
| +                result->fFlags = SkTBitOr<SkAdvancedTypefaceMetrics::FontFlags>(
 | 
| +                        result->fFlags,
 | 
| +                        SkAdvancedTypefaceMetrics::kNotEmbeddable_FontFlag);
 | 
| +            }
 | 
| +            if (os2table.version.v2.fsType.field.NoSubsetting) {
 | 
| +                result->fFlags = SkTBitOr<SkAdvancedTypefaceMetrics::FontFlags>(
 | 
| +                        result->fFlags,
 | 
| +                        SkAdvancedTypefaceMetrics::kNotSubsettable_FontFlag);
 | 
| +            }
 | 
| +        }
 | 
| +    }
 | 
| +    return result;
 | 
|  }
 | 
|  
 | 
|  ///////////////////////////////////////////////////////////////////////////////
 | 
| 
 |