Re: possible memleak with pangoft2?
- From: Olexiy Avramchenko <olexiy ctech cn ua>
- To: John Cupitt <jcupitt gmail com>
- Cc: gtk-list <gtk-list gnome org>
- Subject: Re: possible memleak with pangoft2?
- Date: Mon, 11 Apr 2005 10:06:41 +0300
Hello, John ;)
You're leaking fontmap object. I dont know when fontmap object gets all extra
references (just have no time to look inside), but its natural to have only one
instance of it per app.
static void
test( const char *text, const char *font )
{
PangoFontMap *fontmap;
PangoContext *context;
PangoLayout *layout;
PangoFontDescription *font_description;
PangoRectangle logical_rect;
fontmap = pango_ft2_font_map_new();
context = pango_ft2_font_map_create_context(
PANGO_FT2_FONT_MAP( fontmap ) );
layout = pango_layout_new( context );
font_description = pango_font_description_from_string( font );
pango_layout_set_font_description( layout, font_description );
pango_font_description_free( font_description );
pango_layout_set_markup( layout, text, -1 );
/* Comment this line out and the leak stops.
*/
pango_layout_get_extents( layout, NULL, &logical_rect );
g_print("layout: %d\n", G_OBJECT(layout)->ref_count);
g_print("context: %d\n", G_OBJECT(context)->ref_count);
g_print("fontmap: %d\n---\n", G_OBJECT(fontmap)->ref_count);
g_object_unref( layout );
g_print("context: %d\n", G_OBJECT(context)->ref_count);
g_print("fonmap: %d\n---\n", G_OBJECT(fontmap)->ref_count);
g_object_unref( context );
g_print("fontmap: %d\n---\n", G_OBJECT(fontmap)->ref_count);
g_object_unref( fontmap );
g_print("fontmap: %d (%s)\n---\n", G_OBJECT(fontmap)->ref_count,
G_IS_OBJECT(fontmap)?"valid":"invalid");
}
[skipped]
Look at output: I have 19 references and valid fontmap object after all unrefs.
Olexiy
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]