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>
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)
{