diff --git a/coccinelle/sd_event_source_disable_unref.cocci b/coccinelle/sd_event_source_disable_unref.cocci new file mode 100644 index 0000000000..2763fefac9 --- /dev/null +++ b/coccinelle/sd_event_source_disable_unref.cocci @@ -0,0 +1,36 @@ +@@ +expression p; +@@ +- if (p) { +- (void) sd_event_source_set_enabled(p, SD_EVENT_OFF); +- p = sd_event_source_unref(p); +- } ++ p = sd_event_source_disable_unref(p); +@@ +expression p; +@@ +- if (p) { +- sd_event_source_set_enabled(p, SD_EVENT_OFF); +- sd_event_source_unref(p); +- } ++ sd_event_source_disable_unref(p); +@@ +expression p; +@@ +- if (p) { +- (void) sd_event_source_set_enabled(p, SD_EVENT_OFF); +- sd_event_source_unref(p); +- } ++ sd_event_source_disable_unref(p); +@@ +expression p; +@@ +- (void) sd_event_source_set_enabled(p, SD_EVENT_OFF); +- sd_event_source_unref(p); ++ sd_event_source_disable_unref(p); +@@ +expression p; +@@ +- sd_event_source_set_enabled(p, SD_EVENT_OFF); +- sd_event_source_unref(p); ++ sd_event_source_disable_unref(p); diff --git a/src/core/service.c b/src/core/service.c index c83a748456..cfb0a7bc72 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -320,10 +320,7 @@ static void service_fd_store_unlink(ServiceFDStore *fs) { fs->service->n_fd_store--; } - if (fs->event_source) { - sd_event_source_set_enabled(fs->event_source, SD_EVENT_OFF); - sd_event_source_unref(fs->event_source); - } + sd_event_source_disable_unref(fs->event_source); free(fs->fdname); safe_close(fs->fd); diff --git a/src/import/curl-util.c b/src/import/curl-util.c index 83671cf99b..febcc43ce8 100644 --- a/src/import/curl-util.c +++ b/src/import/curl-util.c @@ -70,8 +70,7 @@ static int curl_glue_socket_callback(CURLM *curl, curl_socket_t s, int action, v fd = sd_event_source_get_io_fd(io); assert(fd >= 0); - sd_event_source_set_enabled(io, SD_EVENT_OFF); - sd_event_source_unref(io); + sd_event_source_disable_unref(io); hashmap_remove(g->ios, FD_TO_PTR(s)); hashmap_remove(g->translate_fds, FD_TO_PTR(fd)); diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c index 91d1c2921a..3e285021bd 100644 --- a/src/journal/journal-file.c +++ b/src/journal/journal-file.c @@ -357,8 +357,7 @@ JournalFile* journal_file_close(JournalFile *f) { if (sd_event_source_get_enabled(f->post_change_timer, NULL) > 0) journal_file_post_change(f); - (void) sd_event_source_set_enabled(f->post_change_timer, SD_EVENT_OFF); - sd_event_source_unref(f->post_change_timer); + sd_event_source_disable_unref(f->post_change_timer); } journal_file_set_offline(f, true); diff --git a/src/shared/varlink.c b/src/shared/varlink.c index 3596bd2c87..ceec1af0d4 100644 --- a/src/shared/varlink.c +++ b/src/shared/varlink.c @@ -335,25 +335,13 @@ int varlink_connect_fd(Varlink **ret, int fd) { static void varlink_detach_event_sources(Varlink *v) { assert(v); - if (v->io_event_source) { - (void) sd_event_source_set_enabled(v->io_event_source, SD_EVENT_OFF); - v->io_event_source = sd_event_source_unref(v->io_event_source); - } + v->io_event_source = sd_event_source_disable_unref(v->io_event_source); - if (v->time_event_source) { - (void) sd_event_source_set_enabled(v->time_event_source, SD_EVENT_OFF); - v->time_event_source = sd_event_source_unref(v->time_event_source); - } + v->time_event_source = sd_event_source_disable_unref(v->time_event_source); - if (v->quit_event_source) { - (void) sd_event_source_set_enabled(v->quit_event_source, SD_EVENT_OFF); - v->quit_event_source = sd_event_source_unref(v->quit_event_source); - } + v->quit_event_source = sd_event_source_disable_unref(v->quit_event_source); - if (v->defer_event_source) { - (void) sd_event_source_set_enabled(v->defer_event_source, SD_EVENT_OFF); - v->defer_event_source = sd_event_source_unref(v->defer_event_source); - } + v->defer_event_source = sd_event_source_disable_unref(v->defer_event_source); } static void varlink_clear(Varlink *v) { @@ -2203,10 +2191,7 @@ static VarlinkServerSocket* varlink_server_socket_destroy(VarlinkServerSocket *s if (ss->server) LIST_REMOVE(sockets, ss->server->sockets, ss); - if (ss->event_source) { - (void) sd_event_source_set_enabled(ss->event_source, SD_EVENT_OFF); - sd_event_source_unref(ss->event_source); - } + sd_event_source_disable_unref(ss->event_source); free(ss->address); safe_close(ss->fd);