gnome i HOME_ETC

Michal Moskal malekith w pld-linux.org
Śro, 8 Maj 2002, 15:47:51 CEST


On Wed, May 08, 2002 at 03:44:17PM +0200, Tomasz Kłoczko wrote:
> On Wed, 8 May 2002, Michal Moskal wrote:
> 
> > On Wed, May 08, 2002 at 03:25:22PM +0200, Tomasz Kłoczko wrote:
> > > On Wed, 8 May 2002, Zbigniew Chyla wrote:
> > > 
> > > > On Wed, 2002-05-08 at 12:15:11, Tomasz Kłoczko wrote:
> > > > 
> > > > > Właśnia przejrzałem libgnome pod kontrem dostosowania aplikacji GNOME do 
> > > > > HOME_ETC. Zmiana jest w gnome-libs-HOME_ETC.patch i wydaje dość prosta:
> > > > > 
> > > > > -... "/.gnome/", (afile), NULL))
> > > > > +... getenv("CONFIG_DIR")  ? g_strconcat( "/", getenv("CONFIG_DIR"), "/" ): "/.gnome/", (afile), NULL))
> >                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > > > > (...)
> > > > 
> > > > memleak
> > > 
> > > Prośba o rozwinięcie.
> > 
> > To wywołanie allokuje pamięć, wskaźnik do której zaraz jest gubiony.
> 
> Jeżeli nigdzie nie przechowasz wyniku wykonania gnome_util_home_file() to 
> zreczywiście tak będzie. Jednakrze nie powinieneś tego robić i gdzieś sam 
> powinieneś zadbać o to żeby użyć:
> 
>  g_string_free(<zmienna>, TRUE);
> 
> także wycieku tu raczej nie widzę.

W ten sposób zwolnisz tylko *zewnątrzne* wywołani g_strconcat(), to
podkreślone nie jest zwalniane. Sugeuje użycie compound expression (w
ten sposób pozbędziesz się też podwójnego wywołania getenv())

-- 
: Michal Moskal :::::::: malekith/at/pld.org.pl :  GCS {C,UL}++++$ a? !tv
: PLD Linux ::::::: Wroclaw University, CS Dept :  {E-,w}-- {b++,e}>+++ h



Więcej informacji o liście dyskusyjnej pld-devel-pl