From 2aa68eff02f0e37e7ab93c2716f22f536cc988fe Mon Sep 17 00:00:00 2001 From: Marcus Fritzsch Date: Wed, 30 Jul 2014 17:21:21 +0200 Subject: [PATCH] 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 --- .../ilmControl/src/ilm_control_wayland_platform.c | 18 ++++++++++-------- 1 file 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) { -- 2.7.4