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 <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]