On Thu, 2006-07-06 at 15:36 -0400, Jeffrey Stedfast wrote: > On Thu, 2006-07-06 at 21:32 +0200, Philip Van Hoof wrote: > > On Thu, 2006-07-06 at 15:18 -0400, Jeffrey Stedfast wrote: > > > For some strange reason I thought the pstring stuff already did that, > > > oops. I guess I was thinking of similar code I wrote a few years back > > > for another project... > > > > > > This patch does it the way I had done it in another project of mine > > > > Yours looks a little bit more clean in naming and stuff like that. It > > probably does more or less the same? So I'd say commit one of the two? > > yea, it's basically the same as what you did Err. I don't want to disappoint you. But measuring your implementation shows that you are allocated three megabytes more data than the original one. Mine didn't do that because I freed the str in the first if-block. The attached patch fixes it. The attached valgrind reports show it. Ok to commit this? Will you commit it? -- Philip Van Hoof, software developer at x-tend home: me at pvanhoof dot be gnome: pvanhoof at gnome dot org work: vanhoof at x-tend dot be http://www.pvanhoof.be - http://www.x-tend.be
? camel-mime-tables.c Index: camel-string-utils.c =================================================================== RCS file: /cvs/gnome/evolution-data-server/camel/camel-string-utils.c,v retrieving revision 1.6 diff -u -r1.6 camel-string-utils.c --- camel-string-utils.c 6 Jul 2006 19:43:47 -0000 1.6 +++ camel-string-utils.c 6 Jul 2006 21:34:32 -0000 @@ -164,10 +164,10 @@ char *pstr; int count; - if (s == NULL) + if (str == NULL) return NULL; - if (s[0] == '\0') { + if (str[0] == '\0') { if (own) g_free (str); return ""; @@ -180,6 +180,7 @@ if (g_hash_table_lookup_extended (pstring_table, str, (void **) &pstr, &pcount)) { count = GPOINTER_TO_INT (pcount) + 1; g_hash_table_insert (pstring_table, pstr, GINT_TO_POINTER (count)); + g_free (str); } else { pstr = own ? str : g_strdup (str); g_hash_table_insert (pstring_table, pstr, GINT_TO_POINTER (1));
Attachment:
valgrind.tar.gz
Description: application/compressed-tar