diff options
author | Vladimir Vukicevic <vladimir@pobox.com> | 2008-04-27 15:20:43 -0700 |
---|---|---|
committer | Vladimir Vukicevic <vladimir@sleet.vlad1.com> | 2008-04-27 15:20:43 -0700 |
commit | 122a31a0757d0483f72af0cf3816a52bded5afb6 (patch) | |
tree | 8c59fed3750f1a9b484a0005e690a6cd1f2de5c0 /src/cairo-quartz-font.c | |
parent | 76e655e5084270b7e5a9ed153e50e2f544c9b46f (diff) |
[quartz] Fix CGFont leaks when creating quartz fonts
The toy font constructor and the _with_atsu_font_id constructor were
not properly managing the refcount of the CGFontRef.
Diffstat (limited to 'src/cairo-quartz-font.c')
-rw-r--r-- | src/cairo-quartz-font.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/cairo-quartz-font.c b/src/cairo-quartz-font.c index 2918ea7b..4a59d676 100644 --- a/src/cairo-quartz-font.c +++ b/src/cairo-quartz-font.c @@ -343,6 +343,8 @@ _cairo_quartz_font_create_toy(cairo_toy_font_face_t *toy_face, } face = cairo_quartz_font_face_create_for_cgfont (cgFont); + CGFontRelease (cgFont); + if (face->status) return face->status; @@ -780,8 +782,13 @@ cairo_quartz_font_face_create_for_atsu_font_id (ATSUFontID font_id) { ATSFontRef atsFont = FMGetATSFontRefFromFont (font_id); CGFontRef cgFont = CGFontCreateWithPlatformFont (&atsFont); + cairo_font_face_t *ff; + + ff = cairo_quartz_font_face_create_for_cgfont (cgFont); + + CGFontRelease (cgFont); - return cairo_quartz_font_face_create_for_cgfont (cgFont); + return ff; } /* This is the old name for the above function, exported for compat purposes */ |