GNU C Library master sources branch, master, updated. glibc-2.14-318-g6857791

drepper@sourceware.org drepper@sourceware.org
Thu Sep 29 04:47:00 GMT 2011


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  68577918437e2ccfd6bd2836892f59ef42994963 (commit)
      from  68822d74268d003ba9dec772f5f11c8b670ca136 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=68577918437e2ccfd6bd2836892f59ef42994963

commit 68577918437e2ccfd6bd2836892f59ef42994963
Author: Ulrich Drepper <drepper@gmail.com>
Date:   Wed Sep 28 10:01:13 2011 -0400

    Optimize libnss_files initialization

diff --git a/ChangeLog b/ChangeLog
index d50b768..a8ccdac 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-09-28  Ulrich Drepper  <drepper@gmail.com>
+
+	* nss/nss_files/files-init.c (_nss_files_init): Use static
+	initialization for all the *_traced_file variables.
+
 2011-09-28  Andreas Schwab  <schwab@redhat.com>
 
 	* sysdeps/powerpc/fpu/libm-test-ulps: Adjust ULPs for jn tests.
diff --git a/nss/nss_files/files-init.c b/nss/nss_files/files-init.c
index cc6822d..b33cc3e 100644
--- a/nss/nss_files/files-init.c
+++ b/nss/nss_files/files-init.c
@@ -20,53 +20,36 @@
 #include <nscd/nscd.h>
 
 
-static union
-{
-  struct traced_file file;
-  char buf[sizeof (struct traced_file) + sizeof ("/etc/passwd")];
-} pwd_traced_file;
-
-static union
-{
-  struct traced_file file;
-  char buf[sizeof (struct traced_file) + sizeof ("/etc/group")];
-} grp_traced_file;
-
-static union
-{
-  struct traced_file file;
-  char buf[sizeof (struct traced_file) + sizeof ("/etc/hosts")];
-} hst_traced_file;
-
-static union
-{
-  struct traced_file file;
-  char buf[sizeof (struct traced_file) + sizeof ("/etc/resolv.conf")];
-} resolv_traced_file;
-
-static union
-{
-  struct traced_file file;
-  char buf[sizeof (struct traced_file) + sizeof ("/etc/services")];
-} serv_traced_file;
+#define TF(id, filename, ...)					\
+static union							\
+{								\
+  struct traced_file file;					\
+  char buf[sizeof (struct traced_file) + sizeof (filename)];	\
+} id##_traced_file =						\
+  {								\
+    .file =							\
+    {								\
+      .fname = filename, ## __VA_ARGS__				\
+    }								\
+  }
+
+TF (pwd, "/etc/passwd");
+TF (grp, "/etc/group");
+TF (hst, "/etc/hosts");
+TF (resolv, "/etc/resolv.conf", .call_res_init = 1);
+TF (serv, "/etc/services");
 
 
 void
 _nss_files_init (void (*cb) (size_t, struct traced_file *))
 {
-  strcpy (pwd_traced_file.file.fname, "/etc/passwd");
   cb (pwddb, &pwd_traced_file.file);
 
-  strcpy (grp_traced_file.file.fname, "/etc/group");
   cb (grpdb, &grp_traced_file.file);
 
-  strcpy (hst_traced_file.file.fname, "/etc/hosts");
   cb (hstdb, &hst_traced_file.file);
 
-  resolv_traced_file.file.call_res_init = 1;
-  strcpy (resolv_traced_file.file.fname, "/etc/resolv.conf");
   cb (hstdb, &resolv_traced_file.file);
 
-  strcpy (serv_traced_file.file.fname, "/etc/services");
   cb (servdb, &serv_traced_file.file);
 }

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                  |    5 ++++
 nss/nss_files/files-init.c |   53 +++++++++++++++-----------------------------
 2 files changed, 23 insertions(+), 35 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources



More information about the Glibc-cvs mailing list