From: Saint Xavier Date: Mon, 21 Jul 2008 17:34:22 +0000 (+0200) Subject: Do not free/duplicate current/remote encoding string if they aren't changed X-Git-Tag: v1.13~338^2~7^2~6^2~13^2~1 X-Git-Url: http://sjero.net/git/?p=wget;a=commitdiff_plain;h=c31e00b52d49632dd0f005269ab2b820c7fd2c34 Do not free/duplicate current/remote encoding string if they aren't changed --- diff --git a/src/iri.c b/src/iri.c index c28d4f51..d23615ae 100644 --- a/src/iri.c +++ b/src/iri.c @@ -337,18 +337,27 @@ void set_current_charset (char *charset) { /*printf("[ current = `%s'\n", charset);*/ if (current) - xfree (current); + { + /* Do nothing if already equal */ + if (!strcasecmp (current, charset)) + return; + xfree (current); + } current = charset ? xstrdup (charset) : NULL; } void set_current_as_locale (void) { + /* sXXXav : assert opt.locale NULL ? */ /*printf("[ current = locale = `%s'\n", opt.locale);*/ if (current) - xfree (current); + { + if (!strcasecmp (current, opt.locale)) + return; + xfree (current); + } - /* sXXXav : assert opt.locale NULL ? */ current = xstrdup (opt.locale); } @@ -357,8 +366,12 @@ set_remote_charset (char *charset) { /*printf("[ remote = `%s'\n", charset);*/ if (remote) - xfree (remote); - + { + /* Do nothing if already equal */ + if (!strcasecmp (remote, charset)) + return; + xfree (remote); + } remote = charset ? xstrdup (charset) : NULL; } @@ -367,7 +380,12 @@ set_remote_as_current (void) { /*printf("[ remote = current = `%s'\n", current);*/ if (remote) - xfree (remote); + { + /* Do nothing if already equal */ + if (current && !strcasecmp (remote, current)) + return; + xfree (remote); + } remote = current ? xstrdup (current) : NULL; }