| 976 | } |
| 977 | |
| 978 | static void |
| 979 | ghb_application_shutdown (GApplication *app) |
| 980 | { |
| 981 | GhbApplication *self = GHB_APPLICATION(app); |
| 982 | signal_user_data_t *ud = self->ud; |
| 983 | g_assert(GHB_IS_APPLICATION(self) && ud != NULL); |
| 984 | |
| 985 | ghb_backend_close(); |
| 986 | |
| 987 | // Remove stderr redirection |
| 988 | if (self->stderr_src_id > 0) |
| 989 | g_source_remove(self->stderr_src_id); |
| 990 | ghb_value_free(&ud->queue); |
| 991 | ghb_value_free(&ud->settings_array); |
| 992 | ghb_value_free(&ud->prefs); |
| 993 | |
| 994 | if (ud->activity_log != NULL) |
| 995 | g_io_channel_unref(ud->activity_log); |
| 996 | ghb_settings_close(); |
| 997 | ghb_resource_free(); |
| 998 | |
| 999 | if (self->builder != NULL) |
| 1000 | g_object_unref(self->builder); |
| 1001 | |
| 1002 | ghb_power_manager_dispose(ud); |
| 1003 | |
| 1004 | g_object_unref(ud->extra_activity_buffer); |
| 1005 | g_object_unref(ud->queue_activity_buffer); |
| 1006 | g_object_unref(ud->activity_buffer); |
| 1007 | g_clear_pointer(&ud->extra_activity_path, g_free); |
| 1008 | ghb_preview_dispose(ud); |
| 1009 | |
| 1010 | g_free(ud->current_dvd_device); |
| 1011 | g_free(self->ud); |
| 1012 | |
| 1013 | G_APPLICATION_CLASS(ghb_application_parent_class)->shutdown(app); |
| 1014 | } |
| 1015 | |
| 1016 | enum { |
| 1017 | PROP_0, |
nothing calls this directly
no test coverage detected