From 737e0f12d926a9aeb1ce5df14ae6bdd12d7eaa35 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Fri, 21 Apr 2023 10:44:26 +0200 Subject: logind-core: modernize button_free() --- src/login/logind-button.c | 8 +++++--- src/login/logind-button.h | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'src/login') diff --git a/src/login/logind-button.c b/src/login/logind-button.c index 727dad0b16..7f95fa7a4f 100644 --- a/src/login/logind-button.c +++ b/src/login/logind-button.c @@ -53,8 +53,9 @@ Button* button_new(Manager *m, const char *name) { return b; } -void button_free(Button *b) { - assert(b); +Button *button_free(Button *b) { + if (!b) + return NULL; hashmap_remove(b->manager->buttons, b->name); @@ -65,7 +66,8 @@ void button_free(Button *b) { free(b->name); free(b->seat); - free(b); + + return mfree(b); } int button_set_seat(Button *b, const char *sn) { diff --git a/src/login/logind-button.h b/src/login/logind-button.h index 041d66521c..6c39471fb4 100644 --- a/src/login/logind-button.h +++ b/src/login/logind-button.h @@ -20,7 +20,7 @@ struct Button { }; Button* button_new(Manager *m, const char *name); -void button_free(Button *b); +Button *button_free(Button *b); int button_open(Button *b); int button_set_seat(Button *b, const char *sn); int button_check_switches(Button *b); -- cgit v1.2.1 From 3d01bfa7db96e0aa6c252078a53f04b6972c94d9 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Fri, 21 Apr 2023 10:44:43 +0200 Subject: logind-core: drop unneeded check for NULL --- src/login/logind-core.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'src/login') diff --git a/src/login/logind-core.c b/src/login/logind-core.c index 8e1c54dbe2..dd4b246893 100644 --- a/src/login/logind-core.c +++ b/src/login/logind-core.c @@ -323,15 +323,11 @@ int manager_process_button_device(Manager *m, sd_device *d) { return r; if (device_for_action(d, SD_DEVICE_REMOVE) || - sd_device_has_current_tag(d, "power-switch") <= 0) { + sd_device_has_current_tag(d, "power-switch") <= 0) - b = hashmap_get(m->buttons, sysname); - if (!b) - return 0; - - button_free(b); + button_free(hashmap_get(m->buttons, sysname)); - } else { + else { const char *sn; r = manager_add_button(m, sysname, &b); -- cgit v1.2.1 From 5ce8ce908d53c06c97040927481acb5af2bd1d7a Mon Sep 17 00:00:00 2001 From: David Tardon Date: Fri, 21 Apr 2023 10:48:03 +0200 Subject: logind: rename function to avoid confusion --- src/login/logind.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/login') diff --git a/src/login/logind.c b/src/login/logind.c index a0d6cb3a27..cfb3ef500c 100644 --- a/src/login/logind.c +++ b/src/login/logind.c @@ -40,11 +40,11 @@ #include "udev-util.h" #include "user-util.h" -static Manager* manager_unref(Manager *m); -DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_unref); +static Manager* manager_free(Manager *m); +DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free); static int manager_new(Manager **ret) { - _cleanup_(manager_unrefp) Manager *m = NULL; + _cleanup_(manager_freep) Manager *m = NULL; int r; assert(ret); @@ -102,7 +102,7 @@ static int manager_new(Manager **ret) { return 0; } -static Manager* manager_unref(Manager *m) { +static Manager* manager_free(Manager *m) { Session *session; User *u; Device *d; @@ -1177,7 +1177,7 @@ static int manager_run(Manager *m) { } static int run(int argc, char *argv[]) { - _cleanup_(manager_unrefp) Manager *m = NULL; + _cleanup_(manager_freep) Manager *m = NULL; _unused_ _cleanup_(notify_on_cleanup) const char *notify_message = NULL; int r; -- cgit v1.2.1 From 80e52052dbb42ed15ea74dc3b880bf51917e8f43 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Fri, 21 Apr 2023 15:50:21 +0200 Subject: logind-session-device: modernize session_device_free() --- src/login/logind-session-device.c | 8 +++++--- src/login/logind-session-device.h | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'src/login') diff --git a/src/login/logind-session-device.c b/src/login/logind-session-device.c index a8b3b48992..9743cd570c 100644 --- a/src/login/logind-session-device.c +++ b/src/login/logind-session-device.c @@ -375,8 +375,9 @@ error: return r; } -void session_device_free(SessionDevice *sd) { - assert(sd); +SessionDevice *session_device_free(SessionDevice *sd) { + if (!sd) + return NULL; /* Make sure to remove the pushed fd. */ if (sd->pushed_fd) @@ -391,7 +392,8 @@ void session_device_free(SessionDevice *sd) { hashmap_remove(sd->session->devices, &sd->dev); free(sd->node); - free(sd); + + return mfree(sd); } void session_device_complete_pause(SessionDevice *sd) { diff --git a/src/login/logind-session-device.h b/src/login/logind-session-device.h index 4da3fe6533..a606d84f0e 100644 --- a/src/login/logind-session-device.h +++ b/src/login/logind-session-device.h @@ -28,7 +28,7 @@ struct SessionDevice { }; int session_device_new(Session *s, dev_t dev, bool open_device, SessionDevice **out); -void session_device_free(SessionDevice *sd); +SessionDevice *session_device_free(SessionDevice *sd); void session_device_complete_pause(SessionDevice *sd); void session_device_resume_all(Session *s); -- cgit v1.2.1 From 360179ea4621a65e9993782bfe28ac4168a7e254 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Fri, 21 Apr 2023 15:53:02 +0200 Subject: logind-session-dbus: use _cleanup_ --- src/login/logind-session-dbus.c | 12 +++++------- src/login/logind-session-device.h | 2 ++ 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'src/login') diff --git a/src/login/logind-session-dbus.c b/src/login/logind-session-dbus.c index e3bebc9188..bc7d8fdc1c 100644 --- a/src/login/logind-session-dbus.c +++ b/src/login/logind-session-dbus.c @@ -424,7 +424,7 @@ static int method_set_display(sd_bus_message *message, void *userdata, sd_bus_er static int method_take_device(sd_bus_message *message, void *userdata, sd_bus_error *error) { Session *s = ASSERT_PTR(userdata); uint32_t major, minor; - SessionDevice *sd; + _cleanup_(session_device_freep) SessionDevice *sd = NULL; dev_t dev; int r; @@ -456,18 +456,16 @@ static int method_take_device(sd_bus_message *message, void *userdata, sd_bus_er r = session_device_save(sd); if (r < 0) - goto error; + return r; r = sd_bus_reply_method_return(message, "hb", sd->fd, !sd->active); if (r < 0) - goto error; + return r; session_save(s); - return 1; + TAKE_PTR(sd); -error: - session_device_free(sd); - return r; + return 1; } static int method_release_device(sd_bus_message *message, void *userdata, sd_bus_error *error) { diff --git a/src/login/logind-session-device.h b/src/login/logind-session-device.h index a606d84f0e..04654d1252 100644 --- a/src/login/logind-session-device.h +++ b/src/login/logind-session-device.h @@ -29,6 +29,8 @@ struct SessionDevice { int session_device_new(Session *s, dev_t dev, bool open_device, SessionDevice **out); SessionDevice *session_device_free(SessionDevice *sd); +DEFINE_TRIVIAL_CLEANUP_FUNC(SessionDevice*, session_device_free); + void session_device_complete_pause(SessionDevice *sd); void session_device_resume_all(Session *s); -- cgit v1.2.1