If the user has the details plugin configured, and the
system does plymouth quit --retain-splash, then their
may be a crash.
This is because the plugin event loop exit handler will called
after the plugin is destroyed. This commit makes sure
the exit handler is removed before the plugin is freed.
} view_t;
ply_boot_splash_plugin_interface_t *ply_boot_splash_plugin_get_interface (void);
+static void detach_from_event_loop (ply_boot_splash_plugin_t *plugin);
+
struct _ply_boot_splash_plugin
{
ply_event_loop_t *loop;
if (plugin == NULL)
return;
+ if (plugin->loop != NULL)
+ {
+ ply_event_loop_stop_watching_for_exit (plugin->loop, (ply_event_loop_exit_handler_t)
+ detach_from_event_loop,
+ plugin);
+ detach_from_event_loop (plugin);
+ }
+
free_views (plugin);
free (plugin);