summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2009-10-08 15:41:06 -0400
committerRay Strode <rstrode@redhat.com>2009-10-08 15:41:06 -0400
commite938daa05b05d5517cec61fab7caf0df75e5fa14 (patch)
tree6d47ce7a6a166660901fa2b45e5c0491665ff437
parent78d610e82a9eebdce7ab43a6e3acfee1057f6a2c (diff)
[renderer] make input_source_close idempotent
-rw-r--r--src/libplybootsplash/ply-renderer.c12
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: */