Re: [Evolution-hackers] [evolution-patches] Avoiding a strdup in camel-folder-summar.c



On Wed, 2006-07-12 at 02:27 +0530, Ritesh Khadgaray wrote:
> On Tue, 2006-07-11 at 09:28 -0400, Chris Toshok wrote:
> > No opinion on the rest of the patch, but this:
> > 
> > > +static void
> > > +free_token (gchar *token)
> > > +{
> > > +       gint i=0;
> > > +       gboolean no=FALSE;
> > > +
> > > +       for (i=0; (i < tokens_len); i++)
> > > +       {
> > > +               if (tokens[i] == token)
> > > +                       no = TRUE;
> > > +       }
> > > +
> > > +       if (!no)
> > > +               g_free (token);
> > > +}
> > > + 
> > 
> > is more efficient as:
> > 
> > static void
> > free_token (gchar *token)
> > {
> > 	gint i;
> > 
> > 	for (i = 0; i < tokens_len; i ++)
> > 		if (tokens[i] == token)
> > 			return;
> 
> out of curiosity, the first patch reads through the list
> and this patch, return if any one of the token is equal, anf not any
> following it.
> 
> Would the below not be better ?
> 
> 	for (i = 0; i < tokens_len; i ++)
> 		if (tokens[i] == token)
> 			break;
> 
> 

no, because you'd segfault trying to g_free() a static string.

The point of the code Toshok wrote was to no-op if the string was static
and to g_free() it if not.

Jeff

-- 
Jeffrey Stedfast
Evolution Hacker - Novell, Inc.
fejj novell com  - www.novell.com




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