Re: [LAD] memory leak assistance

From: hermann <brummer-@web.de>
Date: Tue Dec 29 2009 - 21:37:34 EET

Am Dienstag, den 29.12.2009, 20:22 +0100 schrieb hermann:
> Am Mittwoch, den 30.12.2009, 04:54 +1100 schrieb Patrick Shirkey:
>
> >
> > Thanks. That's a nicer way of doing things but this call segfaults
> >
> > pango_layout_new(style->font_desc)
> >
> > gcc tells me this:
> >
> > note: expected ‘struct PangoContext *’ but argument is of type ‘struct
> > PangoFontDescription *’
> >
> > I have replaced it with this:
> >
> > pl = pango_layout_new(gtk_widget_get_pango_context(widget));
> >
> Ah, okay, I didn't really use pango_layout_new, were for do you use it ?
> You have already set the Font style, why don't simply label it ?
> Do you use the rect afterwards ?
>
>
> >
> > But still get a memory leak. This makes it happen faster than the
> > previous method I was using. Back down to a couple of minutes before I
> > see the leak from 10 previously.
> >
> >
> >
> >
> > Patrick Shirkey
> > Boost Hardware Ltd
> >
> >
> >
> > >
> > > Am Mittwoch, den 30.12.2009, 01:18 +1100 schrieb Patrick Shirkey:
> > >
> > >> Hi,
> > >>
> > >> I have some code in gtk2 that is leaking and I can't fix it. Over the
> > >> past two nights I have managed to get the leak down from 200MB/minute to
> > >> 200MB/10 minutes but I can't get rid of it completely. It's annoying
> > >> because it increments in 200MB blocks so I have to wait for up to 10
> > >> mins to see if it is fixed or not. I have tried valgrind but it doesn't
> > >> really like jack and did not give me any useful output. I have traced
> > >> the leak through normal debugging and have verified that it does not
> > >> happen if I disable this offending code.
> > >>
> > >> This code is run in the widgets realize event and the event is triggered
> > >> every 500ms.

And when you use style->font_desc, you could move the font discription
to init, and change only the text every 500ms.

> > >>
> > >>
> > >> PangoContext *pc = gtk_widget_get_pango_context(widget);
> > >> PangoLayout *pl;
> > >> PangoFontDescription *pfd;
> > >> PangoRectangle rect;
> > >>
> > >> pfd = pango_font_description_new();
> > >> pango_font_description_set_family(pfd, "sans");
> > >> pango_font_description_set_size(pfd, 8 * PANGO_SCALE);
> > >> pango_context_set_font_description(pc, pfd);
> > >> pl = pango_layout_new(pc);
> > >> pango_layout_set_text(pl, "99", -1);
> > >> pango_layout_get_pixel_extents(pl,&rect, NULL);
> > >>
> > >> pango_font_description_free(pfd);
> > >> g_object_unref(pc);
> > >>
> > >>
> > >> If I add another
> > >>
> > >> g_object_unref(pl) ;
> > >>
> > >>
> > >> The app code will compile but when I run it I get this segfault:
> > >>
> > >> *** glibc detected *** ./src/jackeq: free(): invalid pointer:
> > >> 0x0000000001b87a60 ***
> > >>
> > >>
> > >> I can have one g_object_unref for either pl or pc without segfaulting
> > >> but not both.
> > >>
> > >>
> > >> I'm pretty sure this is the last leak I have to catch for the merged
> > >> gtkmeter.c/gtkmeterscale.c and I can't release jackeq until it is fixed.
> > >> Any assistance with this one is appreciated.
> > >>
> > >>
> > >> Cheers.
> > >>
> > >>
> > >
> > _______________________________________________
> > Linux-audio-dev mailing list
> > Linux-audio-dev@lists.linuxaudio.org
> > http://lists.linuxaudio.org/listinfo/linux-audio-dev
>
> _______________________________________________
> Linux-audio-dev mailing list
> Linux-audio-dev@lists.linuxaudio.org
> http://lists.linuxaudio.org/listinfo/linux-audio-dev

_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Wed Dec 30 00:15:11 2009

This archive was generated by hypermail 2.1.8 : Wed Dec 30 2009 - 00:15:11 EET