diff options
author | Marcus Fritzsch <marcus.fritzsch@xse.de> | 2014-07-30 17:21:21 +0200 |
---|---|---|
committer | Nobuhiko Tanibata <NOBUHIKO_TANIBATA@denso.co.jp> | 2014-08-12 22:15:16 +0900 |
commit | 2aa68eff02f0e37e7ab93c2716f22f536cc988fe (patch) | |
tree | 7f1abf098f4cfda77245187c18a2d7cc0c8b6930 | |
parent | 45d6520fe1fdbb6ba8e206f87f2c4eb9d67a65fa (diff) | |
download | wayland-ivi-extension-2aa68eff02f0e37e7ab93c2716f22f536cc988fe.tar.gz |
ilmControl: sync_and_acquire_instance checks for initialization
sync_and_acquire_instance coded as a macro that checks
the initialized field and returns ILM_FAILED if no initilized.
As sync_and_acquire_instance() is only to be used from ilm_*
implementation functions, this should be safe.
Signed-off-by: Marcus Fritzsch <marcus.fritzsch@xse.de>
-rw-r--r-- | ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c b/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c index 951dbab..c89b80e 100644 --- a/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c +++ b/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c @@ -1406,14 +1406,16 @@ init_control(void) return 0; } -static struct ilm_control_context* -sync_and_acquire_instance(void) -{ - struct ilm_control_context *ctx = &ilm_context; - lock_context(ctx); - display_roundtrip_queue(ctx->wl.display, ctx->wl.queue); - return ctx; -} +#define sync_and_acquire_instance() ({ \ + struct ilm_control_context *ctx = &ilm_context; \ + if (! ctx->initialized) { \ + fputs("Not initialized\n", stderr); \ + return ILM_FAILED; \ + } \ + lock_context(ctx); \ + display_roundtrip_queue(ctx->wl.display, ctx->wl.queue); \ + ctx; \ +}) static void release_instance(void) { |