From b6e61f9c7eb0a73b8f36f82581795aa1e6b85800 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sat, 9 Feb 2019 11:11:31 +0100 Subject: [PATCH] modules: use calloc() instead of malloc() In cases where it makes sense, use calloc() instead of malloc(): * When allocating large objects with many members, many for which NULL/0 is a good default value. * Arrays etc where we explicitly initialize to NULL anyway. --- module.c | 10 +--------- modules/alsa.c | 5 +---- modules/backlight.c | 4 +--- modules/battery.c | 11 +---------- modules/clock.c | 2 +- modules/i3.c | 7 ++----- modules/label.c | 2 +- modules/mpd.c | 11 +---------- modules/network.c | 5 +---- modules/removables.c | 3 +-- modules/xkb.c | 10 +--------- 11 files changed, 12 insertions(+), 58 deletions(-) diff --git a/module.c b/module.c index bf4ec3e..1e80c32 100644 --- a/module.c +++ b/module.c @@ -6,17 +6,9 @@ struct module * module_common_new(void) { - struct module *mod = malloc(sizeof(*mod)); - mod->bar = NULL; + struct module *mod = calloc(1, sizeof(*mod)); mtx_init(&mod->lock, mtx_plain); - mod->private = NULL; mod->destroy = &module_default_destroy; - - /* No defaults for these; must be provided by implementation */ - mod->run = NULL; - mod->content = NULL; - mod->refresh_in = NULL; - return mod; } diff --git a/modules/alsa.c b/modules/alsa.c index 0cb5e41..bc17a88 100644 --- a/modules/alsa.c +++ b/modules/alsa.c @@ -269,13 +269,10 @@ err: static struct module * alsa_new(const char *card, const char *mixer, struct particle *label) { - struct private *priv = malloc(sizeof(*priv)); + struct private *priv = calloc(1, sizeof(*priv)); priv->label = label; priv->card = strdup(card); priv->mixer = strdup(mixer); - memset(&priv->channels, 0, sizeof(priv->channels)); - priv->vol_cur = priv->vol_min = priv->vol_max = 0; - priv->muted = true; struct module *mod = module_common_new(); mod->private = priv; diff --git a/modules/backlight.c b/modules/backlight.c index 69cb8f5..98142f6 100644 --- a/modules/backlight.c +++ b/modules/backlight.c @@ -206,11 +206,9 @@ run(struct module *mod) static struct module * backlight_new(const char *device, struct particle *label) { - struct private *m = malloc(sizeof(*m)); + struct private *m = calloc(1, sizeof(*m)); m->label = label; m->device = strdup(device); - m->max_brightness = 0; - m->current_brightness = 0; struct module *mod = module_common_new(); mod->private = m; diff --git a/modules/battery.c b/modules/battery.c index 2192bb0..246cc61 100644 --- a/modules/battery.c +++ b/modules/battery.c @@ -327,20 +327,11 @@ out: static struct module * battery_new(const char *battery, struct particle *label, int poll_interval_secs) { - struct private *m = malloc(sizeof(*m)); + struct private *m = calloc(1, sizeof(*m)); m->label = label; m->poll_interval = poll_interval_secs; m->battery = strdup(battery); - - m->manufacturer = NULL; - m->model = NULL; - - m->energy_full_design = 0; - m->energy_full = 0; m->state = STATE_DISCHARGING; - m->capacity = 0; - m->energy = 0; - m->power = 0; struct module *mod = module_common_new(); mod->private = m; diff --git a/modules/clock.c b/modules/clock.c index 27e19fd..fb28633 100644 --- a/modules/clock.c +++ b/modules/clock.c @@ -82,7 +82,7 @@ run(struct module *mod) static struct module * clock_new(struct particle *label, const char *date_format, const char *time_format) { - struct private *m = malloc(sizeof(*m)); + struct private *m = calloc(1, sizeof(*m)); m->label = label; m->date_format = strdup(date_format); m->time_format = strdup(time_format); diff --git a/modules/i3.c b/modules/i3.c index b4951a2..7869693 100644 --- a/modules/i3.c +++ b/modules/i3.c @@ -248,7 +248,7 @@ handle_get_workspaces_reply(struct private *m, const struct json_object *json) size_t count = json_object_array_length(json); m->workspaces.count = count; - m->workspaces.v = malloc(count * sizeof(m->workspaces.v[0])); + m->workspaces.v = calloc(count, sizeof(m->workspaces.v[0])); for (size_t i = 0; i < count; i++) { if (!workspace_from_json( @@ -709,7 +709,7 @@ static struct module * i3_new(struct i3_workspaces workspaces[], size_t workspace_count, int left_spacing, int right_spacing) { - struct private *m = malloc(sizeof(*m)); + struct private *m = calloc(1, sizeof(*m)); m->left_spacing = left_spacing; m->right_spacing = right_spacing; @@ -722,9 +722,6 @@ i3_new(struct i3_workspaces workspaces[], size_t workspace_count, m->ws_content.v[i].content = workspaces[i].content; } - m->workspaces.v = NULL; - m->workspaces.count = 0; - struct module *mod = module_common_new(); mod->private = m; mod->run = &run; diff --git a/modules/label.c b/modules/label.c index 8427050..099d22f 100644 --- a/modules/label.c +++ b/modules/label.c @@ -37,7 +37,7 @@ run(struct module *mod) static struct module * label_new(struct particle *label) { - struct private *m = malloc(sizeof(*m)); + struct private *m = calloc(1, sizeof(*m)); m->label = label; struct module *mod = module_common_new(); diff --git a/modules/mpd.c b/modules/mpd.c index b91c057..43420e6 100644 --- a/modules/mpd.c +++ b/modules/mpd.c @@ -565,20 +565,11 @@ refresh_in(struct module *mod, long milli_seconds) static struct module * mpd_new(const char *host, uint16_t port, struct particle *label) { - struct private *priv = malloc(sizeof(*priv)); + struct private *priv = calloc(1, sizeof(*priv)); priv->host = strdup(host); priv->port = port; priv->label = label; - priv->conn = NULL; priv->state = STATE_OFFLINE; - priv->repeat = priv->random = priv->consume = false; - priv->album = NULL; - priv->artist = NULL; - priv->title = NULL; - priv->elapsed.value = 0; - priv->elapsed.when.tv_sec = priv->elapsed.when.tv_nsec = 0; - priv->duration = 0; - priv->refresh_thread_id = 0; priv->refresh_abort_fd = -1; struct module *mod = module_common_new(); diff --git a/modules/network.c b/modules/network.c index 2c6522f..2bc624d 100644 --- a/modules/network.c +++ b/modules/network.c @@ -511,17 +511,14 @@ run(struct module *mod) static struct module * network_new(const char *iface, struct particle *label) { - struct private *priv = malloc(sizeof(*priv)); + struct private *priv = calloc(1, sizeof(*priv)); priv->iface = strdup(iface); priv->label = label; priv->nl_sock = -1; priv->get_addresses = true; priv->ifindex = -1; - memset(priv->mac, 0, sizeof(priv->mac)); - priv->carrier = false; priv->state = IF_OPER_DOWN; - memset(&priv->addrs, 0, sizeof(priv->addrs)); struct module *mod = module_common_new(); mod->private = priv; diff --git a/modules/removables.c b/modules/removables.c index e05db7d..d31c69c 100644 --- a/modules/removables.c +++ b/modules/removables.c @@ -545,11 +545,10 @@ run(struct module *mod) static struct module * removables_new(struct particle *label, int left_spacing, int right_spacing) { - struct private *priv = malloc(sizeof(*priv)); + struct private *priv = calloc(1, sizeof(*priv)); priv->label = label; priv->left_spacing = left_spacing; priv->right_spacing = right_spacing; - memset(&priv->devices, 0, sizeof(priv->devices)); struct module *mod = module_common_new(); mod->private = priv; diff --git a/modules/xkb.c b/modules/xkb.c index ae86c38..627f422 100644 --- a/modules/xkb.c +++ b/modules/xkb.c @@ -642,16 +642,8 @@ run(struct module *mod) static struct module * xkb_new(struct particle *label) { - struct private *m = malloc(sizeof(*m)); + struct private *m = calloc(1, sizeof(*m)); m->label = label; - m->current = 0; - m->layouts.count = 0; - m->layouts.layouts = NULL; - m->indicators.count = 0; - m->indicators.names = NULL; - m->caps_lock = false; - m->num_lock = false; - m->scroll_lock = false; struct module *mod = module_common_new(); mod->private = m;