(map_v4v6_address): Optimize a bit.
authordrepper <drepper>
Tue, 21 Nov 2006 00:33:25 +0000 (00:33 +0000)
committerdrepper <drepper>
Tue, 21 Nov 2006 00:33:25 +0000 (00:33 +0000)
resolv/mapv4v6addr.h

index bc3290f..a71a6cc 100644 (file)
@@ -56,16 +56,14 @@ static void
 map_v4v6_address (const char *src, char *dst)
 {
   u_char *p = (u_char *) dst;
-  char tmp[INADDRSZ];
   int i;
 
-  /* Stash a temporary copy so our caller can update in place. */
-  memcpy (tmp, src, INADDRSZ);
+  /* Move the IPv4 part to the right position.  */
+  memcpy (src + 12, src, INADDRSZ);
+
   /* Mark this ipv6 addr as a mapped ipv4. */
   for (i = 0; i < 10; i++)
     *p++ = 0x00;
   *p++ = 0xff;
-  *p++ = 0xff;
-  /* Retrieve the saved copy and we're done. */
-  memcpy ((void *) p, tmp, INADDRSZ);
+  *p = 0xff;
 }