You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by Brian Pane <bp...@pacbell.net> on 2001/12/26 10:13:50 UTC

[PATCH] add apr_utoa function

A counterpart to apr_itoa(), so that we can eliminate
some inefficient 'sprintf(foo, "%u", bar)' calls in the
httpd.


Index: srclib/apr/include/apr_strings.h
===================================================================
RCS file: /home/cvspublic/apr/include/apr_strings.h,v
retrieving revision 1.23
diff -u -r1.23 apr_strings.h
--- srclib/apr/include/apr_strings.h    2001/12/02 09:20:23    1.23
+++ srclib/apr/include/apr_strings.h    2001/12/26 09:14:54
@@ -298,6 +298,14 @@
 APR_DECLARE(char *) apr_itoa(apr_pool_t *p, int n);
 
 /**
+ * create a string representation of an unsigned int, allocated from a pool
+ * @param p The pool from which to allocate
+ * @param n The number to format
+ * @return The string representation of the number
+ */
+APR_DECLARE(char *) apr_utoa(apr_pool_t *p, unsigned n);
+
+/**
  * create a string representation of a long, allocated from a pool
  * @param p The pool from which to allocate
  * @param n The number to format
Index: srclib/apr/strings/apr_strings.c
===================================================================
RCS file: /home/cvspublic/apr/strings/apr_strings.c,v
retrieving revision 1.23
diff -u -r1.23 apr_strings.c
--- srclib/apr/strings/apr_strings.c    2001/12/02 09:20:23    1.23
+++ srclib/apr/strings/apr_strings.c    2001/12/26 09:14:54
@@ -215,6 +215,19 @@
     return start;
 }
 
+APR_DECLARE(char *) apr_utoa(apr_pool_t *p, unsigned n)
+{
+    const int BUFFER_SIZE = sizeof(unsigned) * 3 + 2;
+    char *buf = apr_palloc(p, BUFFER_SIZE);
+    char *start = buf + BUFFER_SIZE - 1;
+    *start = 0;
+    do {
+        *--start = '0' + (n % 10);
+        n /= 10;
+    } while (n);
+    return start;
+}
+
 APR_DECLARE(char *) apr_ltoa(apr_pool_t *p, long n)
 {
     const int BUFFER_SIZE = sizeof(long) * 3 + 2;