]> granicus.if.org Git - pgbouncer/commitdiff
use memchr() in mbuf_get_string
authorMarko Kreen <markokr@gmail.com>
Wed, 1 Aug 2007 19:43:42 +0000 (19:43 +0000)
committerMarko Kreen <markokr@gmail.com>
Wed, 1 Aug 2007 19:43:42 +0000 (19:43 +0000)
src/mbuf.h

index 9bb38bd68241cad00284871b2625e6e7911bd0a2..687a9ef85848db266a2025b10daa0762d548e5f0 100644 (file)
@@ -81,17 +81,6 @@ static inline const uint8 * mbuf_get_bytes(MBuf *buf, unsigned len)
        return res;
 }
 
-static inline const char * mbuf_get_string(MBuf *buf)
-{
-       const char *res = (const char *)buf->pos;
-       while (buf->pos < buf->end && *buf->pos)
-               buf->pos++;
-       if (buf->pos == buf->end)
-               return NULL;
-       buf->pos++;
-       return res;
-}
-
 static inline unsigned mbuf_avail(MBuf *buf)
 {
        return buf->end - buf->pos;
@@ -102,3 +91,13 @@ static inline unsigned mbuf_size(MBuf *buf)
        return buf->end - buf->data;
 }
 
+static inline const char * mbuf_get_string(MBuf *buf)
+{
+       const char *res = (const char *)buf->pos;
+       const uint8 *nul = memchr(res, 0, mbuf_avail(buf));
+       if (!nul)
+               return NULL;
+       buf->pos = nul + 1;
+       return res;
+}
+