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