libeek: fix memory leak
This commit is contained in:
		@ -99,9 +99,12 @@ egf_key_callback (EekElement *element,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    eek_element_get_bounds (EEK_ELEMENT(key), &bounds);
 | 
					    eek_element_get_bounds (EEK_ELEMENT(key), &bounds);
 | 
				
			||||||
    label = eek_keysym_to_string (keysym);
 | 
					    label = eek_keysym_to_string (keysym);
 | 
				
			||||||
 | 
					    if (!label)
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
    font_size = get_font_size (label, &bounds, data->layout);
 | 
					    font_size = get_font_size (label, &bounds, data->layout);
 | 
				
			||||||
    if (font_size < data->font_size && font_size >= data->minimum_font_size)
 | 
					    if (font_size < data->font_size && font_size >= data->minimum_font_size)
 | 
				
			||||||
        data->font_size = font_size;
 | 
					        data->font_size = font_size;
 | 
				
			||||||
 | 
					    g_free (label);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
@ -242,6 +245,7 @@ eek_draw_key_label (cairo_t               *cr,
 | 
				
			|||||||
                   (bounds.width - logical_rect.width / PANGO_SCALE) / 2,
 | 
					                   (bounds.width - logical_rect.width / PANGO_SCALE) / 2,
 | 
				
			||||||
                   (bounds.height - logical_rect.height / PANGO_SCALE) / 2);
 | 
					                   (bounds.height - logical_rect.height / PANGO_SCALE) / 2);
 | 
				
			||||||
    pango_cairo_show_layout (cr, layout);
 | 
					    pango_cairo_show_layout (cr, layout);
 | 
				
			||||||
 | 
					    g_free (label);
 | 
				
			||||||
    g_object_unref (layout);
 | 
					    g_object_unref (layout);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -302,6 +302,7 @@ on_expose_event (GtkWidget      *widget,
 | 
				
			|||||||
        base_font = gtk_widget_get_style (priv->widget)->font_desc;
 | 
					        base_font = gtk_widget_get_style (priv->widget)->font_desc;
 | 
				
			||||||
        pango_layout_set_font_description (layout, base_font);
 | 
					        pango_layout_set_font_description (layout, base_font);
 | 
				
			||||||
        eek_get_fonts (EEK_KEYBOARD(keyboard), layout, priv->fonts);
 | 
					        eek_get_fonts (EEK_KEYBOARD(keyboard), layout, priv->fonts);
 | 
				
			||||||
 | 
					        g_object_unref (layout);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        prepare_keyboard_pixmap (keyboard);
 | 
					        prepare_keyboard_pixmap (keyboard);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user