Optimize fmemopen a bit.
authorUlrich Drepper <drepper@gmail.com>
Fri, 4 Mar 2011 05:49:46 +0000 (00:49 -0500)
committerUlrich Drepper <drepper@gmail.com>
Fri, 4 Mar 2011 05:49:46 +0000 (00:49 -0500)
ChangeLog
libio/fmemopen.c

index 16da2c1..c6d652d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2011-03-04  Ulrich Drepper  <drepper@gmail.com>
+
+       * libio/fmemopen.c (fmemopen): Optimize a bit.
+
 2011-03-03  Andreas Schwab  <schwab@redhat.com>
 
        * libio/fmemopen.c (fmemopen): Don't read past end of buffer.
index 1a631d5..75f9f7e 100644 (file)
@@ -226,6 +226,7 @@ fmemopen (void *buf, size_t len, const char *mode)
          return NULL;
        }
       c->buffer[0] = '\0';
+      c->maxpos = 0;
     }
   else
     {
@@ -236,14 +237,14 @@ fmemopen (void *buf, size_t len, const char *mode)
        }
 
       c->buffer = buf;
-    }
 
-  c->size = len;
+      if (mode[0] == 'w')
+       c->buffer[0] = '\0';
 
-  if (mode[0] == 'w')
-    c->buffer[0] = '\0';
+      c->maxpos = strnlen (c->buffer, len);
+    }
 
-  c->maxpos = strnlen (c->buffer, len);
+  c->size = len;
 
   if (mode[0] == 'a')
     c->pos = c->maxpos;