[Piglit] [PATCH 11/12] utils: provide static inline strchrnul/strndup

Emil Velikov emil.l.velikov at gmail.com
Sat Nov 22 14:40:33 PST 2014


Typecast malloc() return value, of the CPP compiler will hate us.

Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
---
 tests/util/piglit-util.c | 27 ---------------------------
 tests/util/piglit-util.h | 36 ++++++++++++++++++++++++++++--------
 2 files changed, 28 insertions(+), 35 deletions(-)

diff --git a/tests/util/piglit-util.c b/tests/util/piglit-util.c
index b089944..2652e4b 100644
--- a/tests/util/piglit-util.c
+++ b/tests/util/piglit-util.c
@@ -289,33 +289,6 @@ piglit_report_subtest_result(enum piglit_result result, const char *format, ...)
 	va_end(ap);
 }
 
-#ifndef HAVE_STRCHRNUL
-char *strchrnul(const char *s, int c)
-{
-	char *t = strchr(s, c);
-
-	return (t == NULL) ? ((char *) s + strlen(s)) : t;
-}
-#endif
-
-
-#ifndef HAVE_STRNDUP
-char *strndup(const char *s, size_t n)
-{
-	const size_t len = strlen(s);
-	const size_t size_to_copy = MIN2(n, len);
-
-	char *const copy = malloc(size_to_copy + 1);
-	if (copy != NULL) {
-		memcpy(copy, s, size_to_copy);
-		copy[size_to_copy] = '\0';
-	}
-
-	return copy;
-}
-#endif
-
-
 #ifdef _WIN32
 
 #ifndef DBG_PRINTEXCEPTION_C
diff --git a/tests/util/piglit-util.h b/tests/util/piglit-util.h
index 0e0a8b9..cfec5b5 100755
--- a/tests/util/piglit-util.h
+++ b/tests/util/piglit-util.h
@@ -200,6 +200,34 @@ strtod_inf(const char *nptr, char **endptr)
 	return strtod(nptr, endptr);
 }
 
+#ifndef HAVE_STRCHRNUL
+static inline char *
+strchrnul(const char *s, int c)
+{
+	char *t = strchr(s, c);
+
+	return (t == NULL) ? ((char *) s + strlen(s)) : t;
+}
+#endif
+
+
+#ifndef HAVE_STRNDUP
+static inline char *
+strndup(const char *s, size_t n)
+{
+	const size_t len = strlen(s);
+	const size_t size_to_copy = MIN2(n, len);
+
+	char *const copy = (char *const) malloc(size_to_copy + 1);
+	if (copy != NULL) {
+		memcpy(copy, s, size_to_copy);
+		copy[size_to_copy] = '\0';
+	}
+
+	return copy;
+}
+#endif
+
 /**
  * Determine if an extension is listed in an extension string
  *
@@ -232,14 +260,6 @@ void piglit_set_timeout(double seconds, enum piglit_result timeout_result);
 void piglit_report_subtest_result(enum piglit_result result,
 				  const char *format, ...) PRINTFLIKE(2, 3);
 
-#ifndef HAVE_STRCHRNUL
-char *strchrnul(const char *s, int c);
-#endif
-
-#ifndef HAVE_STRNDUP
-char *strndup(const char *s, size_t n);
-#endif
-
 void piglit_disable_error_message_boxes(void);
 
 extern void piglit_set_rlimit(unsigned long lim);
-- 
2.1.3



More information about the Piglit mailing list