From: Ray Strode Date: Thu, 8 Oct 2009 19:41:06 +0000 (-0400) Subject: [renderer] make input_source_close idempotent X-Git-Tag: 0.8.0~166 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e938daa05b05d5517cec61fab7caf0df75e5fa14;p=thirdparty%2Fplymouth.git [renderer] make input_source_close idempotent --- 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: */