mirror of
https://gitlab.freedesktop.org/plymouth/plymouth.git
synced 2026-05-07 13:08:07 +02:00
renderer: nullify device if open fails
Since commit e4f86e3c we query the renderer device straight from
the renderer plugin. Unfortunately, we continue to use that
device name even after the renderer fails to open and the plugin
gets unloaded.
This commit changes the code to go back to using the original
device name in that scenario.
This commit is contained in:
parent
43cfbb2a8b
commit
bf560986f0
1 changed files with 9 additions and 2 deletions
|
|
@ -51,6 +51,7 @@ struct _ply_renderer
|
|||
|
||||
ply_renderer_type_t type;
|
||||
char *device_name;
|
||||
char *plugin_device_name;
|
||||
ply_terminal_t *terminal;
|
||||
|
||||
uint32_t input_source_is_open : 1;
|
||||
|
|
@ -100,6 +101,9 @@ ply_renderer_free (ply_renderer_t *renderer)
|
|||
const char *
|
||||
ply_renderer_get_device_name (ply_renderer_t *renderer)
|
||||
{
|
||||
if (renderer->plugin_device_name != NULL)
|
||||
return renderer->plugin_device_name;
|
||||
|
||||
return renderer->device_name;
|
||||
}
|
||||
|
||||
|
|
@ -156,8 +160,8 @@ ply_renderer_load_plugin (ply_renderer_t *renderer,
|
|||
}
|
||||
|
||||
if (renderer->plugin_interface->get_device_name != NULL) {
|
||||
free (renderer->device_name);
|
||||
renderer->device_name = strdup (renderer->plugin_interface->get_device_name (renderer->backend));
|
||||
free (renderer->plugin_device_name);
|
||||
renderer->plugin_device_name = strdup (renderer->plugin_interface->get_device_name (renderer->backend));
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
@ -170,6 +174,9 @@ ply_renderer_unload_plugin (ply_renderer_t *renderer)
|
|||
assert (renderer->plugin_interface != NULL);
|
||||
assert (renderer->module_handle != NULL);
|
||||
|
||||
free (renderer->plugin_device_name);
|
||||
renderer->plugin_device_name = NULL;
|
||||
|
||||
ply_close_module (renderer->module_handle);
|
||||
renderer->plugin_interface = NULL;
|
||||
renderer->module_handle = NULL;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue