This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch, master, updated. glibc-2.14-318-g6857791
- From: drepper at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 29 Sep 2011 04:47:05 -0000
- Subject: GNU C Library master sources branch, master, updated. glibc-2.14-318-g6857791
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