}
static void td_command_free(td_command* self) {
+ // Free events
+ if (self->events.timeout)
+ sd_event_source_unref(self->events.timeout);
+ if (self->events.exit)
+ sd_event_source_unref(self->events.exit);
+ if (self->events.stdout)
+ sd_event_source_unref(self->events.stdout);
+ if (self->events.stderr)
+ sd_event_source_unref(self->events.stderr);
+
// Close pipes
td_command_close_pipe(self->stdout.pipes);
td_command_close_pipe(self->stderr.pipes);
if (self->stderr.buffer)
td_buffer_unref(self->stderr.buffer);
- // Free events
- if (self->events.timeout)
- sd_event_source_unref(self->events.timeout);
- if (self->events.exit)
- sd_event_source_unref(self->events.exit);
- if (self->events.stdout)
- sd_event_source_unref(self->events.stdout);
- if (self->events.stderr)
- sd_event_source_unref(self->events.stderr);
-
if (self->loop)
sd_event_unref(self->loop);
if (self->daemon)