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