diff options
author | Noah Levitt <nlevitt@columbia.edu> | 2004-02-23 21:38:35 +0000 |
---|---|---|
committer | Noah Levitt <nlevitt@src.gnome.org> | 2004-02-23 21:38:35 +0000 |
commit | d234d2a87811f893069d383f45b6365030aa2188 (patch) | |
tree | 1ac57f63d51bb4388f6fbc650cab69c537021d1f /pango/pangofc-fontmap.c | |
parent | 87eb95a56174cf5ed182f480f5ec1f7196f11da2 (diff) | |
download | pango-d234d2a87811f893069d383f45b6365030aa2188.tar.gz |
Handle NULL for sizes and n_sizes.
2003-02-23 Noah Levitt <nlevitt@columbia.edu>
* pango/fonts.c (pango_font_face_list_sizes):
* pango/pangofc-fontmap.c (pango_fc_face_list_sizes): Handle
NULL for sizes and n_sizes.
Diffstat (limited to 'pango/pangofc-fontmap.c')
-rw-r--r-- | pango/pangofc-fontmap.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/pango/pangofc-fontmap.c b/pango/pangofc-fontmap.c index a1b44285..47abfaff 100644 --- a/pango/pangofc-fontmap.c +++ b/pango/pangofc-fontmap.c @@ -1173,7 +1173,7 @@ pango_fc_face_list_sizes (PangoFontFace *face, { GArray *size_array; double size, dpi = -1.0; - int i; + int i, size_i; size_array = g_array_new (FALSE, FALSE, sizeof (int)); @@ -1186,12 +1186,15 @@ pango_fc_face_list_sizes (PangoFontFace *face, FcPattern *tmp = FcPatternDuplicate (fontset->fonts[i]); pango_fc_default_substitute (fcface->family->fontmap, tmp); if (FcPatternGetDouble (tmp, FC_DPI, 0, &dpi) != FcResultMatch) - dpi = 72.0; + { + g_warning ("Error getting DPI from fontconfig, using 72.0"); + dpi = 72.0; + } FcPatternDestroy (tmp); } - int sizi = (int) (PANGO_SCALE * size * 72.0 / dpi); - g_array_append_val (size_array, sizi); + size_i = (int) (PANGO_SCALE * size * 72.0 / dpi); + g_array_append_val (size_array, size_i); } } @@ -1199,23 +1202,30 @@ pango_fc_face_list_sizes (PangoFontFace *face, if (size_array->len == 0) { - *sizes = NULL; *n_sizes = 0; + if (sizes) + *sizes = NULL; g_array_free (size_array, TRUE); } else { *n_sizes = size_array->len; - *sizes = (int *) size_array->data; - g_array_free (size_array, FALSE); + if (sizes) + { + *sizes = (int *) size_array->data; + g_array_free (size_array, FALSE); + } + else + g_array_free (size_array, TRUE); } FcFontSetDestroy (fontset); } else { - *sizes = NULL; *n_sizes = 0; + if (sizes) + *sizes = NULL; } FcPatternDestroy (pattern); |