Re: another memory leak
On Wed, 2008-10-29 at 22:08 -0400, Jacques Le Normand wrote: Hello list, thank you for helping me to solve my previous post, which found that I had a memory leak. The solution was to remove uim (universal input method). Would you say more about the solution in the list? I am also interested in it but don't know why there is a leak. I have a new memory leak problem. This one creates and removes 2000 text entries every 100ms. I've had top showing 64 megs resident after 5 minutes (and no sign of stopping). If anyone could run the code to see if they get a memory leak (and post the result) it would be great! If anyone could shed some light on the problem, even better! cheers --Jacques (and now the code...) #include stdio.h #include stdlib.h #include gtk/gtk.h GtkWidget *entry; GtkWidget *vbox; guint test_function(gpointer data){ GList *iter; GList *original_iter; iter = original_iter = gtk_container_get_children (GTK_CONTAINER (vbox)); while(iter){ GtkWidget *child; child = iter-data; iter = iter-next; gtk_container_remove(GTK_CONTAINER(vbox),child); } g_list_free(original_iter); int i; for( i = 0 ; i 2000 ; i++){ entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (vbox), entry, TRUE, TRUE, 0); gtk_widget_show (entry); } return 1; } int main( int argc, char *argv[] ) { int time_interval = 100; GtkWidget *window; gtk_init (argc, argv); /* create a new window */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_set_size_request (GTK_WIDGET (window), 200, 100); gtk_window_set_title (GTK_WINDOW (window), GTK Entry); g_signal_connect (G_OBJECT (window), destroy, G_CALLBACK (gtk_main_quit), NULL); g_signal_connect_swapped (G_OBJECT (window), delete_event, G_CALLBACK (gtk_widget_destroy), G_OBJECT (window)); vbox = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_widget_show (vbox); g_timeout_add(time_interval,(GSourceFunc) test_function,0); gtk_widget_show (window); gtk_main(); return 0; } ___ gtk-devel-list mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/gtk-devel-list ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: another memory leak
the solution is currently being discussed here: http://groups.google.com/group/uim-en/browse_thread/thread/8ff1adf19bc40fd3 On Thu, Oct 30, 2008 at 2:36 PM, Yu Feng [EMAIL PROTECTED] wrote: On Wed, 2008-10-29 at 22:08 -0400, Jacques Le Normand wrote: Hello list, thank you for helping me to solve my previous post, which found that I had a memory leak. The solution was to remove uim (universal input method). Would you say more about the solution in the list? I am also interested in it but don't know why there is a leak. I have a new memory leak problem. This one creates and removes 2000 text entries every 100ms. I've had top showing 64 megs resident after 5 minutes (and no sign of stopping). If anyone could run the code to see if they get a memory leak (and post the result) it would be great! If anyone could shed some light on the problem, even better! cheers --Jacques (and now the code...) #include stdio.h #include stdlib.h #include gtk/gtk.h GtkWidget *entry; GtkWidget *vbox; guint test_function(gpointer data){ GList *iter; GList *original_iter; iter = original_iter = gtk_container_get_children (GTK_CONTAINER (vbox)); while(iter){ GtkWidget *child; child = iter-data; iter = iter-next; gtk_container_remove(GTK_CONTAINER(vbox),child); } g_list_free(original_iter); int i; for( i = 0 ; i 2000 ; i++){ entry = gtk_entry_new (); gtk_box_pack_start (GTK_BOX (vbox), entry, TRUE, TRUE, 0); gtk_widget_show (entry); } return 1; } int main( int argc, char *argv[] ) { int time_interval = 100; GtkWidget *window; gtk_init (argc, argv); /* create a new window */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_set_size_request (GTK_WIDGET (window), 200, 100); gtk_window_set_title (GTK_WINDOW (window), GTK Entry); g_signal_connect (G_OBJECT (window), destroy, G_CALLBACK (gtk_main_quit), NULL); g_signal_connect_swapped (G_OBJECT (window), delete_event, G_CALLBACK (gtk_widget_destroy), G_OBJECT (window)); vbox = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_widget_show (vbox); g_timeout_add(time_interval,(GSourceFunc) test_function,0); gtk_widget_show (window); gtk_main(); return 0; } ___ gtk-devel-list mailing list [EMAIL PROTECTED] http://mail.gnome.org/mailman/listinfo/gtk-devel-list ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
Re: another memory leak
On Fri, 31 Oct 2008, Alexander Semenov wrote: Jacques Le Normand wrote: thank you for helping me to solve my previous post, which found that I had a memory leak. The solution was to remove uim (universal input method). I have a new memory leak problem. This one creates and removes 2000 text entries every 100ms. I've had top showing 64 megs resident after 5 minutes (and no sign of stopping). If anyone could run the code to see if they get a memory leak (and post the result) it would be great! ... I've tried this and I had the same results. top is not a leak detector. valgrind, which is what you should be using, shows no leak on GTK's part in this example. Allin Cottrell ___ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list