summaryrefslogtreecommitdiff
path: root/src/locale
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-11-12 16:50:58 +0100
committerLennart Poettering <lennart@poettering.net>2018-11-14 17:01:55 +0100
commite6755a33509f425463ddbbf99839ba3ae6979216 (patch)
tree0aedbd7362da192e07dd7819ee86a99700bd39e4 /src/locale
parent13df9c398d60e441a65b11ada491f750947649bf (diff)
downloadsystemd-e6755a33509f425463ddbbf99839ba3ae6979216.tar.gz
systemd-e6755a33509f425463ddbbf99839ba3ae6979216.tar.bz2
systemd-e6755a33509f425463ddbbf99839ba3ae6979216.zip
locale-util: introduce common helper locale_variables_free() for freeing locale variable arrays
Diffstat (limited to 'src/locale')
-rw-r--r--src/locale/localectl.c11
-rw-r--r--src/locale/localed.c13
2 files changed, 7 insertions, 17 deletions
diff --git a/src/locale/localectl.c b/src/locale/localectl.c
index c8278a383d..75e7a55676 100644
--- a/src/locale/localectl.c
+++ b/src/locale/localectl.c
@@ -49,10 +49,10 @@ static void status_info_clear(StatusInfo *info) {
}
static void print_overridden_variables(void) {
- int r;
- char *variables[_VARIABLE_LC_MAX] = {};
- LocaleVariable j;
+ _cleanup_(locale_variables_freep) char *variables[_VARIABLE_LC_MAX] = {};
bool print_warning = true;
+ LocaleVariable j;
+ int r;
if (arg_transport != BUS_TRANSPORT_LOCAL)
return;
@@ -75,7 +75,7 @@ static void print_overridden_variables(void) {
"locale.LC_IDENTIFICATION", &variables[VARIABLE_LC_IDENTIFICATION]);
if (r < 0 && r != -ENOENT) {
log_warning_errno(r, "Failed to read /proc/cmdline: %m");
- goto finish;
+ return;
}
for (j = 0; j < _VARIABLE_LC_MAX; j++)
@@ -88,9 +88,6 @@ static void print_overridden_variables(void) {
} else
log_warning(" %s=%s", locale_variable_to_string(j), variables[j]);
}
- finish:
- for (j = 0; j < _VARIABLE_LC_MAX; j++)
- free(variables[j]);
}
static void print_status_info(StatusInfo *i) {
diff --git a/src/locale/localed.c b/src/locale/localed.c
index 043fffaccb..21d1ded65c 100644
--- a/src/locale/localed.c
+++ b/src/locale/localed.c
@@ -255,20 +255,13 @@ static int property_get_xkb(
return -EINVAL;
}
-static void locale_free(char ***l) {
- int p;
-
- for (p = 0; p < _VARIABLE_LC_MAX; p++)
- (*l)[p] = mfree((*l)[p]);
-}
-
static int method_set_locale(sd_bus_message *m, void *userdata, sd_bus_error *error) {
- Context *c = userdata;
+ _cleanup_(locale_variables_freep) char *new_locale[_VARIABLE_LC_MAX] = {};
_cleanup_strv_free_ char **settings = NULL, **l = NULL;
- char *new_locale[_VARIABLE_LC_MAX] = {}, **i;
- _cleanup_(locale_free) _unused_ char **dummy = new_locale;
+ Context *c = userdata;
bool modified = false;
int interactive, p, r;
+ char **i;
assert(m);
assert(c);