fix null fFontRef in GetDefaultFont()

http://codereview.appspot.com/4662041/



git-svn-id: http://skia.googlecode.com/svn/trunk@1709 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/ports/SkFontHost_mac_coretext.cpp b/src/ports/SkFontHost_mac_coretext.cpp
index fd8e284..a48c365 100644
--- a/src/ports/SkFontHost_mac_coretext.cpp
+++ b/src/ports/SkFontHost_mac_coretext.cpp
@@ -75,8 +75,13 @@
 
 class SkTypeface_Mac : public SkTypeface {
 public:
-    SkTypeface_Mac(SkTypeface::Style style, SkFontID fontID, bool isMonospace)
-        : SkTypeface(style, fontID, isMonospace), fFontRef(0) {}
+    SkTypeface_Mac(SkTypeface::Style style, SkFontID fontID, bool isMonospace,
+                   CTFontRef fontRef, const char name[])
+    : SkTypeface(style, fontID, isMonospace) {
+        SkASSERT(fontRef);
+        fFontRef = fontRef; // we take over ownership
+        fName.set(name);
+    }
 
     virtual ~SkTypeface_Mac() { CFRelease(fFontRef); }
 
@@ -85,14 +90,11 @@
 };
 
 static SkTypeface* NewFromFontRef(CTFontRef fontRef, const char name[]) {
+    SkASSERT(fontRef);
     bool isMonospace;
     SkTypeface::Style style = computeStyleBits(fontRef, &isMonospace);
-    SkTypeface_Mac* face = new SkTypeface_Mac(style,
-                                              SkTypefaceCache::NewFontID(),
-                                              isMonospace);
-    face->fFontRef = fontRef;   // we take over ownership of fontRef
-    face->fName.set(name);
-    return face;
+    return new SkTypeface_Mac(style, SkTypefaceCache::NewFontID(),
+                              isMonospace, fontRef, name);
 }
 
 static SkTypeface* NewFromName(const char familyName[],
@@ -156,8 +158,7 @@
     static SkTypeface* gDefaultFace;
 
     if (NULL == gDefaultFace) {
-        gDefaultFace = new SkTypeface_Mac(SkTypeface::kNormal,
-                                          SkTypefaceCache::NewFontID(), false);
+        gDefaultFace = NewFromName(FONT_DEFAULT_NAME, SkTypeface::kNormal);
     }
     return gDefaultFace;
 }