re-work the context macros
authorTony Cook <tony@develop-help.com>
Mon, 6 Aug 2012 01:48:23 +0000 (11:48 +1000)
committerTony Cook <tony@develop-help.com>
Tue, 14 Aug 2012 09:58:17 +0000 (19:58 +1000)
immacros.h

index 6d7cc75..7b9d866 100644 (file)
@@ -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))