about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--inet/inet_mkadr.c14
2 files changed, 11 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 9934037d94..6c7e971feb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2003-08-27  Jakub Jelinek  <jakub@redhat.com>
+
+	* inet/inet_mkadr.c (inet_makeaddr): Optimize.
+
 2003-08-27  Ulrich Drepper  <drepper@redhat.com>
 
 	* include/stdio.h: Add declarations for __builtin_fwrite and
diff --git a/inet/inet_mkadr.c b/inet/inet_mkadr.c
index 12c9590fb1..d8d92da768 100644
--- a/inet/inet_mkadr.c
+++ b/inet/inet_mkadr.c
@@ -43,17 +43,17 @@ struct in_addr
 inet_makeaddr(net, host)
 	in_addr_t net, host;
 {
-	u_int32_t addr;
+	struct in_addr in;
 
 	if (net < 128)
-		addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST);
+		in.s_addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST);
 	else if (net < 65536)
-		addr = (net << IN_CLASSB_NSHIFT) | (host & IN_CLASSB_HOST);
+		in.s_addr = (net << IN_CLASSB_NSHIFT) | (host & IN_CLASSB_HOST);
 	else if (net < 16777216L)
-		addr = (net << IN_CLASSC_NSHIFT) | (host & IN_CLASSC_HOST);
+		in.s_addr = (net << IN_CLASSC_NSHIFT) | (host & IN_CLASSC_HOST);
 	else
-		addr = net | host;
-	addr = htonl(addr);
-	return (*(struct in_addr *)&addr);
+		in.s_addr = net | host;
+	in.s_addr = htonl(in.s_addr);
+	return in;
 }
 libc_hidden_def (inet_makeaddr)