[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: another memory leak
- From: "Jacques Le Normand" <rathereasy gmail com>
- To: "Yu Feng" <rainwoodman gmail com>
- Cc: gtk-devel-list gnome org, gtk-app-devel-list gnome org
- Subject: Re: another memory leak
- Date: Thu, 30 Oct 2008 16:46:14 -0400
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 <rainwoodman gmail com> 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
> > gtk-devel-list gnome org
> > http://mail.gnome.org/mailman/listinfo/gtk-devel-list
>
>
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]