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]