summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Fritzsch <marcus.fritzsch@xse.de>2014-07-30 17:21:21 +0200
committerNobuhiko Tanibata <NOBUHIKO_TANIBATA@denso.co.jp>2014-08-12 22:15:16 +0900
commit2aa68eff02f0e37e7ab93c2716f22f536cc988fe (patch)
tree7f1abf098f4cfda77245187c18a2d7cc0c8b6930
parent45d6520fe1fdbb6ba8e206f87f2c4eb9d67a65fa (diff)
downloadwayland-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.c18
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)
{