mbrtowc: Tiny optimization.
authorBruno Haible <bruno@clisp.org>
Mon, 21 Feb 2011 04:07:14 +0000 (05:07 +0100)
committerBruno Haible <bruno@clisp.org>
Mon, 21 Feb 2011 04:07:14 +0000 (05:07 +0100)
* lib/mbrtowc.c (mbrtowc): Delay pstate assignment until it is needed.

ChangeLog
lib/mbrtowc.c

index 289730afdc93f6a043ab61963b5027d8cd54b584..dbdc5303b55b25ffdd4b389becaeb0a0a2a2dc7a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-02-20  Bruno Haible  <bruno@clisp.org>
+
+       mbrtowc: Tiny optimization.
+       * lib/mbrtowc.c (mbrtowc): Delay pstate assignment until it is needed.
+
 2011-02-20  Jim Meyering  <meyering@redhat.com>
 
        test-exclude.c: remove unmatched #endif
index 0546f6db7addc1c588e5a59dcb34e4407f682435..d9c25cced65966a5dbd8fd1b742e6948e1c7e50f 100644 (file)
@@ -40,9 +40,6 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
 {
   char *pstate = (char *)ps;
 
-  if (pstate == NULL)
-    pstate = internal_state;
-
   if (s == NULL)
     {
       pwc = NULL;
@@ -54,6 +51,10 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)
     return (size_t)(-2);
 
   /* Here n > 0.  */
+
+  if (pstate == NULL)
+    pstate = internal_state;
+
   {
     size_t nstate = pstate[0];
     char buf[4];