diff options
author | Behdad Esfahbod <behdad@gnome.org> | 2006-01-29 23:06:59 +0000 |
---|---|---|
committer | Behdad Esfahbod <behdad@src.gnome.org> | 2006-01-29 23:06:59 +0000 |
commit | 1a00555cd87c8454301b65fe7939e277b7d67998 (patch) | |
tree | e990bb0669d6b249f3d8c7bc71145c4f5fb43ac9 /pango/glyphstring.c | |
parent | 9d18a76a5d226de48eb41f0c2ba23d7e42195ff8 (diff) | |
download | pango-1a00555cd87c8454301b65fe7939e277b7d67998.tar.gz |
If locking font face failed, do not assert, just return zero glyphs with
2006-01-29 Behdad Esfahbod <behdad@gnome.org>
* modules/arabic/arabic-fc.c, modules/basic/basic-fc.c
modules/hebrew/hebrew-fc.c, modules/indic/indic-fc.c
modules/khmer/khmer-fc.c, modules/syriac/syriac-fc.c
modules/thai/thai-ot.c, modules/thai/thai-shaper.c
modules/tibetan/tibetan-fc.c: If locking font face failed,
do not assert, just return zero glyphs with an implicit
warning.
* pango/fonts.c, pango/glyphstring.c pango/modules.c
pango/pango-color.c, pango/pango-context.c
pango/pango-coverage.c, pango/pango-fontmap.c
pango/pango-glyph-item.c, pango/pango-item.c
pango/pango-layout.c, pango/pango-markup.c
pango/pango-ot-buffer.c, pango/pango-script.c
pango/pango-tabs.c, pango/pango-utils.c
pango/pangoatsui-fontmap.c, pango/pangocairo-fcfont.c
pango/pangocairo-fcfontmap.c, pango/pangocairo-fontmap.c
pango/pangocairo-win32font.c, pango/pangofc-font.c
pango/pangofc-fontmap.c, pango/pangoft2-fontmap.c
pango/pangoft2-render.c, pango/pangoft2.c
pango/pangowin32-fontcache.c, pango/pangoxft-font.c
pango/pangoxft-render.c, pango/break.c pango/ellipsize.c:
Use g_slice for allocating all types. Also, change some
g_error's to g_critical's...
Diffstat (limited to 'pango/glyphstring.c')
-rw-r--r-- | pango/glyphstring.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/pango/glyphstring.c b/pango/glyphstring.c index 59df32da..53a529a0 100644 --- a/pango/glyphstring.c +++ b/pango/glyphstring.c @@ -35,7 +35,7 @@ PangoGlyphString * pango_glyph_string_new (void) { - PangoGlyphString *string = g_new (PangoGlyphString, 1); + PangoGlyphString *string = g_slice_new (PangoGlyphString); string->num_glyphs = 0; string->space = 0; @@ -65,7 +65,10 @@ pango_glyph_string_set_size (PangoGlyphString *string, gint new_len) string->space *= 2; if (string->space < 0) - g_error ("%s: glyph string length overflows maximum integer size", G_STRLOC); + { + g_critical ("glyph string length overflows maximum integer size, truncated"); + new_len = string->space = G_MAXINT - 8; + } } string->glyphs = g_realloc (string->glyphs, string->space * sizeof (PangoGlyphInfo)); @@ -97,7 +100,7 @@ pango_glyph_string_get_type (void) PangoGlyphString * pango_glyph_string_copy (PangoGlyphString *string) { - PangoGlyphString *new_string = g_new (PangoGlyphString, 1); + PangoGlyphString *new_string = g_slice_new (PangoGlyphString); *new_string = *string; @@ -120,7 +123,7 @@ pango_glyph_string_free (PangoGlyphString *string) { g_free (string->glyphs); g_free (string->log_clusters); - g_free (string); + g_slice_free (PangoGlyphString, string); } /** |