From: Tony Cook <tony@develop-help.com>
Date: Mon, 6 Aug 2012 01:48:23 +0000 (+1000)
Subject: re-work the context macros
X-Git-Tag: v0.93_02~71
X-Git-Url: http://git.imager.perl.org/imager.git/commitdiff_plain/768dd2c8918bee69f8f084213d77ad1c8f59944e

re-work the context macros
---

diff --git a/immacros.h b/immacros.h
index 6d7cc75b..7b9d866a 100644
--- a/immacros.h
+++ b/immacros.h
@@ -128,17 +128,17 @@ returns -1 and pushes an error.
 #define i_img_type(im) ((im)->type)
 #define i_img_bits(im) ((im)->bits)
 
+#define pIMCTX im_context_t my_im_ctx
+
 #ifdef IMAGER_NO_CONTEXT
-#define dIMCTX im_context_t my_im_ctx = im_get_context()
-#define dIMCTXa(a) im_context_t my_im_ctx = im_get_context()
-#define dIMCTXim(im) im_context_t my_im_ctx = (im)->context
+#define dIMCTXctx(ctx) pIMCTX = (ctx)
+#define dIMCTX dIMCTXctx(im_get_context())
+#define dIMCTXim(im) dIMCTXctx((im)->context)
 #define aIMCTX my_im_ctx
 #else
 #define aIMCTX im_get_context()
 #endif
 
-#define pIMCTX im_context_t my_im_ctx
-
 #define i_img_8_new(xsize, ysize, channels) im_img_8_new(aIMCTX, (xsize), (ysize), (channels))
 #define i_img_16_new(xsize, ysize, channels) im_img_16_new(aIMCTX, (xsize), (ysize), (channels))
 #define i_img_double_new(xsize, ysize, channels) im_img_double_new(aIMCTX, (xsize), (ysize), (channels))