aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-06-24 18:24:59 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-06-24 18:24:59 +0000
commitb80255700ee01bd4bcb93006281c610f3e5c719d (patch)
tree4ca6e1517bdd40bfe50348642db45d5be435a850
parent6f2b44d2ff24dd704aa673ab653371d62c1ac931 (diff)
fix null fFontRef in GetDefaultFont()
-rw-r--r--src/ports/SkFontHost_mac_coretext.cpp21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/ports/SkFontHost_mac_coretext.cpp b/src/ports/SkFontHost_mac_coretext.cpp
index fd8e2845a9..a48c3650b3 100644
--- a/src/ports/SkFontHost_mac_coretext.cpp
+++ b/src/ports/SkFontHost_mac_coretext.cpp
@@ -75,8 +75,13 @@ static SkTypeface::Style computeStyleBits(CTFontRef font, bool* isMonospace) {
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 @@ public:
};
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* GetDefaultFace() {
static SkTypeface* gDefaultFace;
if (NULL == gDefaultFace) {
- gDefaultFace = new SkTypeface_Mac(SkTypeface::kNormal,
- SkTypefaceCache::NewFontID(), false);
+ gDefaultFace = NewFromName(FONT_DEFAULT_NAME, SkTypeface::kNormal);
}
return gDefaultFace;
}