[Freeciv-Dev] Re: GTK+ client memory leaks
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
On Wed, 27 Nov 2002, Raimar Falke wrote:
> On Wed, Nov 27, 2002 at 01:59:14AM +0000, Vasco Alexandre Da Silva Costa
> wrote:
> >
> > Howdy,
> >
> > I found a whole heap of memory leaks in the GTK+ client produced by
> > spurious use of the intl_slist() function and "forgetting" to free the
> > memory afterwards. This affects the city dialog and a bunch of other places.
> >
> > Such mallocing is unwarranted in the first place so I recomend we replace
> > that most troublesome function with this one:
> >
> > void intl_slist(int n, const char **s, bool *done)
> > {
> > int i;
> >
> > if (!*done) {
> > for(i=0; i<n; i++) {
> > s[i] = _(s[i]);
>
> There is no guarantee that strlen(_(s[i])) <= strlen(s[i]).
That is utterly irrelevant. Look again at what I am passing to the 2nd
argument of this function (i.e. const char **s):
static gchar *title[4] =
{ N_("Type"), N_("Info"), N_("Cost"), N_("Turns") };
Hint: I am merely assigning a pointer not copying a string's contents.
---
Vasco Alexandre da Silva Costa @ Instituto Superior Tecnico, Lisboa
|
|