diff options
author | Ray Strode <rstrode@redhat.com> | 2009-10-08 15:41:06 -0400 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2009-10-08 15:41:06 -0400 |
commit | e938daa05b05d5517cec61fab7caf0df75e5fa14 (patch) | |
tree | 6d47ce7a6a166660901fa2b45e5c0491665ff437 | |
parent | 78d610e82a9eebdce7ab43a6e3acfee1057f6a2c (diff) |
[renderer] make input_source_close idempotent
-rw-r--r-- | src/libplybootsplash/ply-renderer.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/libplybootsplash/ply-renderer.c b/src/libplybootsplash/ply-renderer.c index f7f3c906..0966418d 100644 --- a/src/libplybootsplash/ply-renderer.c +++ b/src/libplybootsplash/ply-renderer.c @@ -52,6 +52,8 @@ struct _ply_renderer char *device_name; ply_terminal_t *terminal; ply_console_t *console; + + uint32_t input_source_is_open : 1; }; typedef const ply_renderer_plugin_interface_t * @@ -321,8 +323,10 @@ ply_renderer_open_input_source (ply_renderer_t *renderer, assert (renderer != NULL); assert (input_source != NULL); - return renderer->plugin_interface->open_input_source (renderer->backend, - input_source); + renderer->input_source_is_open = renderer->plugin_interface->open_input_source (renderer->backend, + input_source); + + return renderer->input_source_is_open; } void @@ -347,8 +351,12 @@ ply_renderer_close_input_source (ply_renderer_t *renderer, assert (renderer != NULL); assert (input_source != NULL); + if (!renderer->input_source_is_open) + return; + renderer->plugin_interface->close_input_source (renderer->backend, input_source); + renderer->input_source_is_open = false; } /* vim: set ts=4 sw=4 expandtab autoindent cindent cino={.5s,(0: */ |