eliminate Imager's internal MAXINT macro
authorTony Cook <tony@develop-help.com>
Mon, 21 Jul 2014 06:14:28 +0000 (16:14 +1000)
committerTony Cook <tony@develop-help.com>
Mon, 21 Jul 2014 06:14:28 +0000 (16:14 +1000)
This conflicted with MAXINT in the win32 headers

draw.c
draw.h
imager.h
imdatatypes.h
img8.c

diff --git a/draw.c b/draw.c
index 3ca10702cb48c8533d60eb731c11e494c1191507..ba79b7730535632fe93ec811ea2333c6552b5043 100644 (file)
--- a/draw.c
+++ b/draw.c
@@ -93,7 +93,10 @@ i_mmarray_cr(i_mmarray *ar,i_img_dim l) {
     exit(3);
   }
   ar->data=mymalloc(alloc_size); /* checked 5jul05 tonyc */
-  for(i=0;i<l;i++) { ar->data[i].max=-1; ar->data[i].min=MAXINT; }
+  for(i=0;i<l;i++) {
+    ar->data[i].max = -1;
+    ar->data[i].min = i_img_dim_MAX;
+  }
 }
 
 void
@@ -111,16 +114,18 @@ i_mmarray_add(i_mmarray *ar,i_img_dim x,i_img_dim y) {
     }
 }
 
-int
+i_img_dim
 i_mmarray_gmin(i_mmarray *ar,i_img_dim y) {
   if (y>-1 && y<ar->lines) return ar->data[y].min;
   else return -1;
 }
 
-int
+i_img_dim
 i_mmarray_getm(i_mmarray *ar,i_img_dim y) {
-  if (y>-1 && y<ar->lines) return ar->data[y].max;
-  else return MAXINT;
+  if (y>-1 && y<ar->lines)
+    return ar->data[y].max;
+  else
+    return i_img_dim_MAX;
 }
 
 #if 0
diff --git a/draw.h b/draw.h
index 73d58555e767b7847576980a8f855e8dbb3dddf3..5cf08c7528f3eab91569145793fbb5aea8896a49 100644 (file)
--- a/draw.h
+++ b/draw.h
@@ -14,8 +14,8 @@ typedef struct {
 void i_mmarray_cr(i_mmarray *ar,i_img_dim l);
 void i_mmarray_dst(i_mmarray *ar);
 void i_mmarray_add(i_mmarray *ar,i_img_dim x,i_img_dim y);
-int i_mmarray_gmin(i_mmarray *ar,i_img_dim y);
-int i_mmarray_getm(i_mmarray *ar,i_img_dim y);
+i_img_dim i_mmarray_gmin(i_mmarray *ar,i_img_dim y);
+i_img_dim i_mmarray_getm(i_mmarray *ar,i_img_dim y);
 void i_mmarray_info(i_mmarray *ar);
 #if 0
 void i_mmarray_render(i_img *im,i_mmarray *ar,i_color *val);
index e114bca081f35df52c9f5f208c34e937783227ca..c494044aee0d385dfbc930e77a33b15732bfcef6 100644 (file)
--- a/imager.h
+++ b/imager.h
 #define PI 3.14159265358979323846
 #endif
 
-#ifndef MAXINT
-#define MAXINT 2147483647
-#endif
-
 #include "imdatatypes.h"
 
 undef_int i_has_format(char *frmt);
index 1fa7c0b530b703f8d01f3d23a95690d80fccf5be..9d5cf7471f50ccafd3255552b3b4d510452d7848 100644 (file)
@@ -43,6 +43,8 @@ May be larger than int on some platforms.
 typedef ptrdiff_t i_img_dim;
 typedef size_t i_img_dim_u;
 
+#define i_img_dim_MAX ((i_img_dim)(~(i_img_dim_u)0 >> 1))
+
 /*
 =item i_color
 =category Data Types
diff --git a/img8.c b/img8.c
index c7804733f30794829ea7f9c643cca3f3fc8e5a42..391af02e814e80dc610cb9954380338c51bbd282 100644 (file)
--- a/img8.c
+++ b/img8.c
@@ -173,7 +173,7 @@ im_img_empty_ch(pIMCTX, i_img *im,i_img_dim x,i_img_dim y,int ch) {
   im->xsize    = x;
   im->ysize    = y;
   im->channels = ch;
-  im->ch_mask  = MAXINT;
+  im->ch_mask  = ~0U;
   im->bytes=bytes;
   if ( (im->idata=mymalloc(im->bytes)) == NULL) 
     im_fatal(aIMCTX, 2,"malloc() error\n");