From b92bea5d2a9481de69bb627a7b442a9f58fca43d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sun, 24 Mar 2013 19:59:00 -0400 Subject: Use initalization instead of explicit zeroing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before, we would initialize many fields twice: first by filling the structure with zeros, and then a second time with the real values. We can let the compiler do the job for us, avoiding one copy. A downside of this patch is that text gets slightly bigger. This is because all zero() calls are effectively inlined: $ size build/.libs/systemd text data bss dec hex filename before 897737 107300 2560 1007597 f5fed build/.libs/systemd after 897873 107300 2560 1007733 f6075 build/.libs/systemd … actually less than 1‰. A few asserts that the parameter is not null had to be removed. I don't think this changes much, because first, it is quite unlikely for the assert to fail, and second, an immediate SEGV is almost as good as an assert. --- src/locale/localectl.c | 3 +-- src/locale/localed.c | 4 +--- 2 files changed, 2 insertions(+), 5 deletions(-) (limited to 'src/locale') diff --git a/src/locale/localectl.c b/src/locale/localectl.c index 5739a1dcd..5328ac41a 100644 --- a/src/locale/localectl.c +++ b/src/locale/localectl.c @@ -158,7 +158,7 @@ static int show_status(DBusConnection *bus, char **args, unsigned n) { const char *interface = ""; int r; DBusMessageIter iter, sub, sub2, sub3; - StatusInfo info; + StatusInfo info = {}; assert(args); @@ -182,7 +182,6 @@ static int show_status(DBusConnection *bus, char **args, unsigned n) { return -EIO; } - zero(info); dbus_message_iter_recurse(&iter, &sub); while (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_INVALID) { diff --git a/src/locale/localed.c b/src/locale/localed.c index df812ee65..23fbde0df 100644 --- a/src/locale/localed.c +++ b/src/locale/localed.c @@ -1011,7 +1011,7 @@ static DBusHandlerResult locale_message_handler( dbus_bool_t interactive; DBusMessageIter iter; bool modified = false; - bool passed[_PROP_MAX]; + bool passed[_PROP_MAX] = {}; int p; if (!dbus_message_iter_init(message, &iter)) @@ -1033,8 +1033,6 @@ static DBusHandlerResult locale_message_handler( dbus_message_iter_get_basic(&iter, &interactive); - zero(passed); - /* Check whether a variable changed and if so valid */ STRV_FOREACH(i, l) { bool valid = false; -- cgit v1.2.3