From 1a77b97c7f38eb0407015df26a5028df826391ab Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Wed, 10 May 2017 09:16:11 +0100 Subject: [PATCH] Don't inline virStringTrimOptionalNewline GCC complains that inlining virStringTrimOptionalNewline is not likely on some platforms: cc1: warnings being treated as errors ../../src/util/virfile.c: In function 'virFileReadValueBitmap': ../../src/util/virstring.h:292: error: inlining failed in call to 'virStringTrimOptionalNewline': call is unlikely and code size would grow [-Winline] ../../src/util/virfile.c:3987: error: called from here [-Winline] Inlining this function is not going to be a measurable performance benefit either, since the time required to execute it is going to be dominated by running of strlen() over the string, not by the function call overhead. Signed-off-by: Daniel P. Berrange --- src/libvirt_private.syms | 1 + src/util/virstring.c | 14 ++++++++++++++ src/util/virstring.h | 8 +------- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 4cca0ca9ad..afb9100c50 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -2630,6 +2630,7 @@ virStringSplitCount; virStringStripControlChars; virStringStripIPv6Brackets; virStringToUpper; +virStringTrimOptionalNewline; virStrncpy; virStrndup; virStrToDouble; diff --git a/src/util/virstring.c b/src/util/virstring.c index 69abc267bf..335e773d78 100644 --- a/src/util/virstring.c +++ b/src/util/virstring.c @@ -1180,3 +1180,17 @@ virStringEncodeBase64(const uint8_t *buf, size_t buflen) return ret; } + +/** + * virStringTrimOptionalNewline: + * @str: the string to modify in-place + * + * Modify @str to remove a single '\n' character + * from its end, if one exists. + */ +void virStringTrimOptionalNewline(char *str) +{ + char *tmp = str + strlen(str) - 1; + if (*tmp == '\n') + *tmp = '\0'; +} diff --git a/src/util/virstring.h b/src/util/virstring.h index 603650aa15..c545ca3f0d 100644 --- a/src/util/virstring.h +++ b/src/util/virstring.h @@ -288,12 +288,6 @@ bool virStringBufferIsPrintable(const uint8_t *buf, size_t buflen); char *virStringEncodeBase64(const uint8_t *buf, size_t buflen); -static inline void -virStringTrimOptionalNewline(char *str) -{ - char *tmp = str + strlen(str) - 1; - if (*tmp == '\n') - *tmp = '\0'; -} +void virStringTrimOptionalNewline(char *str); #endif /* __VIR_STRING_H__ */