From e604e6af2294295f32a2b8d1b05f8bcdbc1f2ef6 Mon Sep 17 00:00:00 2001 From: Daiki Ueno Date: Tue, 22 Jun 2010 16:59:57 +0900 Subject: [PATCH] libeek: fix memory leak --- eek/eek-drawing.c | 4 ++++ eek/eek-gtk-keyboard.c | 1 + 2 files changed, 5 insertions(+) diff --git a/eek/eek-drawing.c b/eek/eek-drawing.c index 1200eb94..49f0cfdf 100644 --- a/eek/eek-drawing.c +++ b/eek/eek-drawing.c @@ -99,9 +99,12 @@ egf_key_callback (EekElement *element, eek_element_get_bounds (EEK_ELEMENT(key), &bounds); label = eek_keysym_to_string (keysym); + if (!label) + return; font_size = get_font_size (label, &bounds, data->layout); if (font_size < data->font_size && font_size >= data->minimum_font_size) data->font_size = font_size; + g_free (label); } static void @@ -242,6 +245,7 @@ eek_draw_key_label (cairo_t *cr, (bounds.width - logical_rect.width / PANGO_SCALE) / 2, (bounds.height - logical_rect.height / PANGO_SCALE) / 2); pango_cairo_show_layout (cr, layout); + g_free (label); g_object_unref (layout); } diff --git a/eek/eek-gtk-keyboard.c b/eek/eek-gtk-keyboard.c index 3b19ca54..b6bd300c 100644 --- a/eek/eek-gtk-keyboard.c +++ b/eek/eek-gtk-keyboard.c @@ -302,6 +302,7 @@ on_expose_event (GtkWidget *widget, base_font = gtk_widget_get_style (priv->widget)->font_desc; pango_layout_set_font_description (layout, base_font); eek_get_fonts (EEK_KEYBOARD(keyboard), layout, priv->fonts); + g_object_unref (layout); prepare_keyboard_pixmap (keyboard); }