]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Don't inline virStringTrimOptionalNewline
authorDaniel P. Berrange <berrange@redhat.com>
Wed, 10 May 2017 08:16:11 +0000 (09:16 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Wed, 10 May 2017 08:25:45 +0000 (09:25 +0100)
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 <berrange@redhat.com>
src/libvirt_private.syms
src/util/virstring.c
src/util/virstring.h

index 4cca0ca9ad3b7952756feb4c1a1f0ac01c8aa8d1..afb9100c50756975dfbd3b2f1f7224634c0d4f2c 100644 (file)
@@ -2630,6 +2630,7 @@ virStringSplitCount;
 virStringStripControlChars;
 virStringStripIPv6Brackets;
 virStringToUpper;
+virStringTrimOptionalNewline;
 virStrncpy;
 virStrndup;
 virStrToDouble;
index 69abc267bfdb50e74db68f63c1a8a64f711855ab..335e773d78ef7d84dee2d83ae27158b016ffb738 100644 (file)
@@ -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';
+}
index 603650aa15886029f7b316857213957a57368677..c545ca3f0dc13189447820db2b2667c60b177aff 100644 (file)
@@ -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__ */