summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2005-12-05 01:21:03 +0000
committerEric Wong <normalperson@yhbt.net>2005-12-05 01:21:03 +0000
commitf628fa1c387cc5679ca08ba66bbc8280bbf6ed6a (patch)
tree35533afd8ffd51d00f58cba68edb279444a33529 /src
parentf8597ccf257eb925db508cfc37a494e2b1397e64 (diff)
optimize away a boatload of strdups during update
git-svn-id: https://svn.musicpd.org/mpd/trunk@3718 09075e82-0dd4-0310-85a5-a0d7c8717e4f
Diffstat (limited to 'src')
-rw-r--r--src/charConv.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/charConv.c b/src/charConv.c
index 85eba7e88..b12bfb751 100644
--- a/src/charConv.c
+++ b/src/charConv.c
@@ -42,10 +42,17 @@ mpd_sint8 char_conv_latin1ToUtf8 = 0;
#define BUFFER_SIZE 1024
int setCharSetConversion(char * to, char * from) {
- if(char_conv_to && strcmp(to,char_conv_to)==0 &&
- char_conv_from && strcmp(from,char_conv_from)==0)
- {
- return 0;
+ if(char_conv_to && char_conv_from) {
+ if (strcmp(from,char_conv_to)==0 &&
+ strcmp(to,char_conv_from)==0) {
+ char * swap = char_conv_from;
+ char_conv_from = char_conv_to;
+ char_conv_to = swap;
+ return 0;
+ } else if (strcmp(to,char_conv_to)==0 &&
+ strcmp(from,char_conv_from)==0) {
+ return 0;
+ }
}
closeCharSetConversion();