* nis/nis_call.c (inetstr2int): Optimize.
authorUlrich Drepper <drepper@redhat.com>
Fri, 9 Dec 2005 06:48:51 +0000 (06:48 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 9 Dec 2005 06:48:51 +0000 (06:48 +0000)
ChangeLog
nis/nis_call.c

index 7bfbb30..81be683 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2005-12-08  Ulrich Drepper  <drepper@redhat.com>
+
+       * nis/nis_call.c (inetstr2int): Optimize.
+
 2005-12-08  Jakub Jelinek  <jakub@redhat.com>
 
        * nis/nis_call.c (__nisbind_create): Remove __nisbind_destroy,
index 07f95f0..5b432b7 100644 (file)
@@ -40,25 +40,16 @@ extern u_short __pmap_getnisport (struct sockaddr_in *address, u_long program,
 unsigned long
 inetstr2int (const char *str)
 {
-  char buffer[strlen (str) + 3];
-  size_t buflen;
-  size_t i, j;
-
-  buflen = stpcpy (buffer, str) - buffer;
-
-  j = 0;
-  for (i = 0; i < buflen; ++i)
-    if (buffer[i] == '.')
+  size_t j = 0;
+  for (size_t i = 0; str[i] != '\0'; ++i)
+    if (str[i] == '.' && ++j == 4)
       {
-       ++j;
-       if (j == 4)
-         {
-           buffer[i] = '\0';
-           break;
-         }
+       char buffer[i + 1];
+       buffer[i] = '\0';
+       return inet_addr (memcpy (buffer, str, i));
       }
 
-  return inet_addr (buffer);
+  return inet_addr (str);
 }
 
 void