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;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define fixUtf8(str) { \
|
static inline char *fix_utf8(char *str) {
|
||||||
if(str && !validUtf8String(str)) { \
|
char *temp;
|
||||||
char * temp; \
|
|
||||||
DEBUG("not valid utf8 in tag: %s\n",str); \
|
if (str != NULL && validUtf8String(str))
|
||||||
temp = latin1StrToUtf8Dup(str); \
|
return str;
|
||||||
free(str); \
|
|
||||||
str = temp; \
|
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,
|
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);
|
memcpy(duplicated, value, len);
|
||||||
duplicated[len] = '\0';
|
duplicated[len] = '\0';
|
||||||
|
|
||||||
fixUtf8(duplicated);
|
duplicated = fix_utf8(duplicated);
|
||||||
stripReturnChar(duplicated);
|
stripReturnChar(duplicated);
|
||||||
|
|
||||||
tag->numOfItems++;
|
tag->numOfItems++;
|
||||||
|
Loading…
Reference in New Issue
Block a user