Hi
I am using valgrind to check my application, I found a lot of memory leak issue related to GtkLabel or maybe pango staff.
I write a small test case to make it simple:
-----------------------------------------
#include <gtk/gtk.h>
void on_click(GtkButton *button, GtkWidget *textview)
{
gtk_main_quit();
}
int
main(int argc, char* argv[])
{
GtkWidget *window;
GtkWidget *vbox, *button;
GtkWidget *label;
gtk_init(&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
vbox = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), vbox);
button = gtk_button_new_with_label("quit");
g_signal_connect(G_OBJECT(button), "clicked",
G_CALLBACK(on_click), NULL);
label = gtk_label_new("hello");
gtk_box_pack_start (GTK_BOX(vbox), button, FALSE, FALSE, 5);
gtk_box_pack_start (GTK_BOX(vbox), label, FALSE, FALSE, 5);
gtk_widget_show_all(GTK_WIDGET(window));
gtk_main();
return 0;
}
------------------------------------------
And run something like:
G_DEBUG=gc-friendly G_SLICE=always-malloc valgrind --leak-check=full
to check this test case
And I got a lot of leak report in gtk_label_size_request function. Detail as attached.
Is there anything wrong I did here? Or I should use valgrind with more ENV settings? Can anyone help on this?
Thanks
Best Regards,
Raymond Liu
Attachment:
1.log
Description: 1.log
#include <gtk/gtk.h>
void on_click(GtkButton *button, GtkWidget *textview)
{
gtk_main_quit();
}
int
main(int argc, char* argv[])
{
GtkWidget *window;
GtkWidget *vbox, *button;
GtkWidget *label;
gtk_init(&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
vbox = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (window), vbox);
button = gtk_button_new_with_label("quit");
g_signal_connect(G_OBJECT(button), "clicked",
G_CALLBACK(on_click), NULL);
label = gtk_label_new("hello");
gtk_box_pack_start (GTK_BOX(vbox), button, FALSE, FALSE, 5);
gtk_box_pack_start (GTK_BOX(vbox), label, FALSE, FALSE, 5);
gtk_widget_show_all(GTK_WIDGET(window));
gtk_main();
return 0;
}