Re: gtk_entry_set_text() and very fast updates



Havoc Pennington wrote:

> David Ford <david linux com> writes:
> > Question, I have need to update an entry box on the order of ~200ms
> > intervals.  Using gtk_entry_set_text() only seems to grow in memory
> > usage.
> >
> > [...]
> >    commaval=commafy(tuples);
> >    sprintf(temp, "%*s", 9, commaval);
> >    free(commaval);
> >    gtk_entry_set_text(GTK_ENTRY(count_field), temp);
> > [...]
> >
> > Consider this the body of a loop.  Yes, I'm new to gtk starting last
> > wednesday evening.  Can someone recommend a leak proof method other than
> > widget de/construction?
> >
>
> If you're running that in a loop without ever running the GTK main
> loop, the memory leak is probably just GTK queuing up more and more
> redraws or something; try running the main loop once in a while.

The loop is iterated by a gtk timer, the program sits in gtk main normally.
sql_refresh is initially called by a button.  I've commented everything in
the function except for the set_text.  Assume conn is null only for the first
call and valid thereafter.  It boils down to the below with main() having
entered while()..gtk_main().

sql_refresh()
[...]
   if(!conn) {
      auto_push_statusbar("You are not linked to the SQL server -- Going
online");
      sql_connect();
      if(!conn) {
         auto_push_statusbar("Unable to link to SQL server");
         return;
      }
      else
         auto_push_statusbar("Connected to SQL server, refreshing every...");

         timeoutid=gtk_timeout_add(200, (void *)&auto_refresh, NULL);
   }
[...]
    gtk_entry_set_text()
}

auto_refresh()
{
   GtkButton *dummy1=NULL;
   gpointer dummy2=0;
   sql_refresh(dummy1, dummy2);
   return;
}

If I comment out the set_text call, I can run the program at 1ms for 20
minutes and see no mem leak.

-d

begin:vcard 
n:Ford;David
x-mozilla-html:TRUE
adr:;;;;;;
version:2.1
email;internet:david kalifornia com
title:Blue Labs Developer
x-mozilla-cpt:;14688
fn:David Ford
end:vcard


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]