tag: converted macro fixUtf8() to an inline function
Since the inline function cannot modify its caller's variables (which is a good thing for code readability), the new string pointer is the return value. The resulting binary should be the same as with the macro.
This commit is contained in:
parent
c855415c73
commit
f99fe80811
20
src/tag.c
20
src/tag.c
@ -347,14 +347,16 @@ int tag_equal(struct tag *tag1, struct tag *tag2)
|
||||
return 1;
|
||||
}
|
||||
|
||||
#define fixUtf8(str) { \
|
||||
if(str && !validUtf8String(str)) { \
|
||||
char * temp; \
|
||||
DEBUG("not valid utf8 in tag: %s\n",str); \
|
||||
temp = latin1StrToUtf8Dup(str); \
|
||||
free(str); \
|
||||
str = temp; \
|
||||
} \
|
||||
static inline char *fix_utf8(char *str) {
|
||||
char *temp;
|
||||
|
||||
if (str != NULL && validUtf8String(str))
|
||||
return str;
|
||||
|
||||
DEBUG("not valid utf8 in tag: %s\n",str);
|
||||
temp = latin1StrToUtf8Dup(str);
|
||||
free(str);
|
||||
return temp;
|
||||
}
|
||||
|
||||
static void appendToTagItems(struct tag *tag, enum tag_type type,
|
||||
@ -366,7 +368,7 @@ static void appendToTagItems(struct tag *tag, enum tag_type type,
|
||||
memcpy(duplicated, value, len);
|
||||
duplicated[len] = '\0';
|
||||
|
||||
fixUtf8(duplicated);
|
||||
duplicated = fix_utf8(duplicated);
|
||||
stripReturnChar(duplicated);
|
||||
|
||||
tag->numOfItems++;
|
||||
|
Loading…
Reference in New Issue
Block a user