summaryrefslogtreecommitdiff
path: root/strings/apr_snprintf.c
diff options
context:
space:
mode:
authorBrian Pane <brianp@apache.org>2002-05-07 04:12:44 +0000
committerBrian Pane <brianp@apache.org>2002-05-07 04:12:44 +0000
commit0667fe83cc43166bc26e31c65be9cee4bcd99aed (patch)
tree8e88c3cfd409de8fafbb0530bd57b6797fbb72d3 /strings/apr_snprintf.c
parentc953a8cf193d0ab9d7f71e9705b7a8956afbc995 (diff)
downloadapr-0667fe83cc43166bc26e31c65be9cee4bcd99aed.tar.gz
Optimize away a strncmp that accounted for 10% of the run time of
apr_vformatter() git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@63368 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'strings/apr_snprintf.c')
-rw-r--r--strings/apr_snprintf.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/strings/apr_snprintf.c b/strings/apr_snprintf.c
index d9ceb3454..8883a68db 100644
--- a/strings/apr_snprintf.c
+++ b/strings/apr_snprintf.c
@@ -810,8 +810,15 @@ APR_DECLARE(int) apr_vformatter(int (*flush_func)(apr_vformatter_buff_t *),
/*
* Modifier check
*/
+#if defined(APR_INT64_T_FMT_LEN) && (APR_INT64_T_FMT_LEN == 3)
+ if ((*fmt == APR_INT64_T_FMT[0]) &&
+ (fmt[1] == APR_INT64_T_FMT[1])) {
+#elif defined(APR_INT64_T_FMT_LEN) && (APR_INT64_T_FMT_LEN == 2)
+ if (*fmt == APR_INT64_T_FMT[0]) {
+#else
if (strncmp(fmt, APR_INT64_T_FMT,
sizeof(APR_INT64_T_FMT) - 2) == 0) {
+#endif
/* Need to account for trailing 'd' and null in sizeof() */
var_type = IS_QUAD;
fmt += (sizeof(APR_INT64_T_FMT) - 2);