| Index: Source/core/platform/graphics/skia/FontCacheSkia.cpp
 | 
| diff --git a/Source/core/platform/graphics/skia/FontCacheSkia.cpp b/Source/core/platform/graphics/skia/FontCacheSkia.cpp
 | 
| index 14fafc3fa7f11255f74d9d27d798b213b1e154bc..cba5debca22aca4f0f88ad8c12ce825e70df82a5 100644
 | 
| --- a/Source/core/platform/graphics/skia/FontCacheSkia.cpp
 | 
| +++ b/Source/core/platform/graphics/skia/FontCacheSkia.cpp
 | 
| @@ -46,6 +46,7 @@ void FontCache::platformInit()
 | 
|  {
 | 
|  }
 | 
|  
 | 
| +#if !OS(WINDOWS)
 | 
|  PassRefPtr<SimpleFontData> FontCache::getFontDataForCharacter(const Font& font, UChar32 c)
 | 
|  {
 | 
|      icu::Locale locale = icu::Locale::getDefault();
 | 
| @@ -83,6 +84,8 @@ PassRefPtr<SimpleFontData> FontCache::getFontDataForCharacter(const Font& font,
 | 
|      return getFontResourceData(&platformData, DoNotRetain);
 | 
|  }
 | 
|  
 | 
| +#endif // !OS(WINDOWNS)
 | 
| +
 | 
|  PassRefPtr<SimpleFontData> FontCache::getSimilarFontPlatformData(const Font& font)
 | 
|  {
 | 
|      return 0;
 | 
| @@ -107,11 +110,9 @@ void FontCache::getTraitsInFamily(const AtomicString& familyName,
 | 
|      notImplemented();
 | 
|  }
 | 
|  
 | 
| -FontPlatformData* FontCache::createFontPlatformData(const FontDescription& fontDescription,
 | 
| -                                                    const AtomicString& family)
 | 
| +SkTypeface* FontCache::createTypeface(const FontDescription& fontDescription, const AtomicString& family, CString& name)
 | 
|  {
 | 
| -    const char* name = 0;
 | 
| -    CString s;
 | 
| +    name = "";
 | 
|  
 | 
|      // If we're creating a fallback font (e.g. "-webkit-monospace"), convert the name into
 | 
|      // the fallback name (like "monospace") that fontconfig understands.
 | 
| @@ -134,12 +135,9 @@ FontPlatformData* FontCache::createFontPlatformData(const FontDescription& fontD
 | 
|                  break;
 | 
|              }
 | 
|          }
 | 
| -        if (!name)
 | 
| -            name = "";
 | 
|      } else {
 | 
|          // convert the name to utf8
 | 
| -        s = family.string().utf8();
 | 
| -        name = s.data();
 | 
| +        name = family.string().utf8();
 | 
|      }
 | 
|  
 | 
|      int style = SkTypeface::kNormal;
 | 
| @@ -148,19 +146,26 @@ FontPlatformData* FontCache::createFontPlatformData(const FontDescription& fontD
 | 
|      if (fontDescription.italic())
 | 
|          style |= SkTypeface::kItalic;
 | 
|  
 | 
| -    SkTypeface* tf = SkTypeface::CreateFromName(name, static_cast<SkTypeface::Style>(style));
 | 
| +    return SkTypeface::CreateFromName(name.data(), static_cast<SkTypeface::Style>(style));
 | 
| +}
 | 
| +
 | 
| +#if !OS(WINDOWS)
 | 
| +FontPlatformData* FontCache::createFontPlatformData(const FontDescription& fontDescription, const AtomicString& family)
 | 
| +{
 | 
| +    CString name;
 | 
| +    SkTypeface* tf = createTypeface(fontDescription, family, name);
 | 
|      if (!tf)
 | 
|          return 0;
 | 
|  
 | 
| -    FontPlatformData* result =
 | 
| -        new FontPlatformData(tf,
 | 
| -                             name,
 | 
| -                             fontDescription.computedSize(),
 | 
| -                             (style & SkTypeface::kBold) && !tf->isBold(),
 | 
| -                             (style & SkTypeface::kItalic) && !tf->isItalic(),
 | 
| -                             fontDescription.orientation());
 | 
| +    FontPlatformData* result = new FontPlatformData(tf,
 | 
| +        name.data(),
 | 
| +        fontDescription.computedSize(),
 | 
| +        fontDescription.weight() >= FontWeightBold && !tf->isBold(),
 | 
| +        fontDescription.italic() && !tf->isItalic(),
 | 
| +        fontDescription.orientation());
 | 
|      tf->unref();
 | 
|      return result;
 | 
|  }
 | 
| +#endif // !OS(WINDOWNS)
 | 
|  
 | 
|  } // namespace WebCore
 | 
| 
 |