Commit f99fe808 authored by Max Kellermann's avatar Max Kellermann

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.
parent c855415c
......@@ -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++;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment