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