From 7b3551e3a8f7278e123757987570c72f1216acc2 Mon Sep 17 00:00:00 2001 From: Ondřej Bílka Date: Fri, 28 Feb 2014 22:45:33 +0100 Subject: Make strtok benchmark competive. We include a generic version of strtok to result which could be faster when underlying primitives are better optimized than current version. --- benchtests/bench-strtok.c | 61 ++++------------------------------------------- 1 file changed, 4 insertions(+), 57 deletions(-) (limited to 'benchtests') diff --git a/benchtests/bench-strtok.c b/benchtests/bench-strtok.c index 5e80c1a775..f2f3f575cd 100644 --- a/benchtests/bench-strtok.c +++ b/benchtests/bench-strtok.c @@ -20,66 +20,13 @@ #define TEST_NAME "strtok" #include "bench-string.h" -char * -simple_strtok (char *s1, char *s2) -{ - static char *saveptr; - char *token; - ssize_t i = 0, j = 0; - int found = 0; - size_t s2len = strlen (s2); - - if (s1 == NULL) - s1 = saveptr; - if (s1 == NULL || *s1 == '\0') - return NULL; - - while (!found) - { - if (s1[i] == '\0') - { - saveptr = NULL; - return NULL; - } - for (j = 0; j < s2len; j++) - { - if (s1[i] == s2[j]) - { - i++; - found = 0; - break; - } - found = 1; - } - } - token = s1 + i; - i++; - found = 0; - while (!found) - { - if (s1[i] == '\0') - { - saveptr = NULL; - return token; - } - for (j = 0; j < s2len; j++) - { - if (s1[i] == s2[j]) - { - found = 1; - break; - } - } - i++; - } - s1[i - 1] = '\0'; - saveptr = s1 + i; - return token; -} +#define STRTOK strtok_string +#include + typedef char *(*proto_t) (const char *, const char *); -IMPL (simple_strtok, 0) +IMPL (strtok_string, 0) IMPL (strtok, 1) static void -- cgit 1.4.1