Callum Lerwick 7173b91
diff -urN -x '*.orig' -x '*.rej' -x '*~' -x '.*' OpenJPEG.orig/libopenjpeg/t1.c OpenJPEG.patched/libopenjpeg/t1.c
Callum Lerwick 7173b91
--- OpenJPEG.orig/libopenjpeg/t1.c	2007-08-23 05:43:10.000000000 -0500
Callum Lerwick 7173b91
+++ OpenJPEG.patched/libopenjpeg/t1.c	2007-08-23 05:46:31.000000000 -0500
Callum Lerwick 7173b91
@@ -259,27 +259,24 @@
Callum Lerwick 7173b91
 }
Callum Lerwick 7173b91
 
Callum Lerwick 7173b91
 static void t1_updateflags(flag_t *flagsp, int s, int stride) {
Callum Lerwick 7173b91
-	flag_t *np = flagsp - stride;
Callum Lerwick 7173b91
-	flag_t *sp = flagsp + stride;
Callum Lerwick 7173b91
-
Callum Lerwick 7173b91
 	static const flag_t mod[] = {
Callum Lerwick 7173b91
-		T1_SIG_S, T1_SIG_S|T1_SGN_S,
Callum Lerwick 7173b91
 		T1_SIG_E, T1_SIG_E|T1_SGN_E,
Callum Lerwick 7173b91
-		T1_SIG_W, T1_SIG_W|T1_SGN_W,
Callum Lerwick 7173b91
-		T1_SIG_N, T1_SIG_N|T1_SGN_N
Callum Lerwick 7173b91
+		T1_SIG_S, T1_SIG_S|T1_SGN_S,
Callum Lerwick 7173b91
+		T1_SIG_N, T1_SIG_N|T1_SGN_N,
Callum Lerwick 7173b91
+		T1_SIG_W, T1_SIG_W|T1_SGN_W
Callum Lerwick 7173b91
 	};
Callum Lerwick 7173b91
 
Callum Lerwick 7173b91
-	np[-1] |= T1_SIG_SE;
Callum Lerwick 7173b91
-	np[0]  |= mod[s];
Callum Lerwick 7173b91
-	np[1]  |= T1_SIG_SW;
Callum Lerwick 7173b91
+	flagsp[-1 - stride] |= T1_SIG_SE;
Callum Lerwick 7173b91
+	flagsp[ 0 - stride] |= mod[s];
Callum Lerwick 7173b91
+	flagsp[ 1 - stride] |= T1_SIG_NE;
Callum Lerwick 7173b91
 
Callum Lerwick 7173b91
 	flagsp[-1] |= mod[s+2];
Callum Lerwick 7173b91
-	flagsp[0]  |= T1_SIG;
Callum Lerwick 7173b91
-	flagsp[1]  |= mod[s+4];
Callum Lerwick 7173b91
+	flagsp[ 0] |= T1_SIG;
Callum Lerwick 7173b91
+	flagsp[ 1] |= mod[s+4];
Callum Lerwick 7173b91
 
Callum Lerwick 7173b91
-	sp[-1] |= T1_SIG_NE;
Callum Lerwick 7173b91
-	sp[0]  |= mod[s+6];
Callum Lerwick 7173b91
-	sp[1]  |= T1_SIG_NW;
Callum Lerwick 7173b91
+	flagsp[-1 + stride] |= T1_SIG_SW;
Callum Lerwick 7173b91
+	flagsp[ 0 + stride] |= mod[s+6];
Callum Lerwick 7173b91
+	flagsp[ 1 + stride] |= T1_SIG_NW;
Callum Lerwick 7173b91
 }
Callum Lerwick 7173b91
 
Callum Lerwick 7173b91
 static void t1_enc_sigpass_step(
Callum Lerwick 7173b91
@@ -373,7 +370,7 @@
Callum Lerwick 7173b91
 				vsc = ((cblksty & J2K_CCP_CBLKSTY_VSC) && (j == k + 3 || j == t1->h - 1)) ? 1 : 0;
Callum Lerwick 7173b91
 				t1_enc_sigpass_step(
Callum Lerwick 7173b91
 						t1,
Callum Lerwick 7173b91
-						&t1->flags[((j+1) * t1->flags_stride) + i + 1],
Callum Lerwick 7173b91
+						&t1->flags[(j+1) + (i+1)*t1->flags_stride],
Callum Lerwick 7173b91
 						&t1->data[(j * t1->w) + i],
Callum Lerwick 7173b91
 						orient,
Callum Lerwick 7173b91
 						bpno,
Callum Lerwick 7173b91
@@ -403,7 +400,7 @@
Callum Lerwick 7173b91
 				vsc = ((cblksty & J2K_CCP_CBLKSTY_VSC) && (j == k + 3 || j == t1->h - 1)) ? 1 : 0;
Callum Lerwick 7173b91
 				t1_dec_sigpass_step(
Callum Lerwick 7173b91
 						t1,
Callum Lerwick 7173b91
-						&t1->flags[((j+1) * t1->flags_stride) + i + 1],
Callum Lerwick 7173b91
+						&t1->flags[(j+1) + (i+1)*t1->flags_stride],
Callum Lerwick 7173b91
 						&t1->data[(j * t1->w) + i],
Callum Lerwick 7173b91
 						orient,
Callum Lerwick 7173b91
 						oneplushalf,
Callum Lerwick 7173b91
@@ -486,7 +483,7 @@
Callum Lerwick 7173b91
 				vsc = ((cblksty & J2K_CCP_CBLKSTY_VSC) && (j == k + 3 || j == t1->h - 1)) ? 1 : 0;
Callum Lerwick 7173b91
 				t1_enc_refpass_step(
Callum Lerwick 7173b91
 						t1,
Callum Lerwick 7173b91
-						&t1->flags[((j+1) * t1->flags_stride) + i + 1],
Callum Lerwick 7173b91
+						&t1->flags[(j+1) + (i+1)*t1->flags_stride],
Callum Lerwick 7173b91
 						&t1->data[(j * t1->w) + i],
Callum Lerwick 7173b91
 						bpno,
Callum Lerwick 7173b91
 						one,
Callum Lerwick 7173b91
@@ -515,7 +512,7 @@
Callum Lerwick 7173b91
 				vsc = ((cblksty & J2K_CCP_CBLKSTY_VSC) && (j == k + 3 || j == t1->h - 1)) ? 1 : 0;
Callum Lerwick 7173b91
 				t1_dec_refpass_step(
Callum Lerwick 7173b91
 						t1,
Callum Lerwick 7173b91
-						&t1->flags[((j+1) * t1->flags_stride) + i + 1],
Callum Lerwick 7173b91
+						&t1->flags[(j+1) + (i+1)*t1->flags_stride],
Callum Lerwick 7173b91
 						&t1->data[(j * t1->w) + i],
Callum Lerwick 7173b91
 						poshalf,
Callum Lerwick 7173b91
 						neghalf,
Callum Lerwick 7173b91
@@ -608,16 +605,16 @@
Callum Lerwick 7173b91
 		for (i = 0; i < t1->w; ++i) {
Callum Lerwick 7173b91
 			if (k + 3 < t1->h) {
Callum Lerwick 7173b91
 				if (cblksty & J2K_CCP_CBLKSTY_VSC) {
Callum Lerwick 7173b91
-					agg = !(MACRO_t1_flags(1 + k,1 + i) & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
-						|| MACRO_t1_flags(1 + k + 1,1 + i) & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
-						|| MACRO_t1_flags(1 + k + 2,1 + i) & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
-						|| (MACRO_t1_flags(1 + k + 3,1 + i) 
Callum Lerwick 7173b91
-						& (~(T1_SIG_S | T1_SIG_SE | T1_SIG_SW |	T1_SGN_S))) & (T1_SIG | T1_VISIT | T1_SIG_OTH));
Callum Lerwick 7173b91
+					agg = !(t1->flags[(k+1) + (i+1)*t1->flags_stride] & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
+					    ||  t1->flags[(k+2) + (i+1)*t1->flags_stride] & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
+					    ||  t1->flags[(k+3) + (i+1)*t1->flags_stride] & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
+					    || (t1->flags[(k+4) + (i+1)*t1->flags_stride] 
Callum Lerwick 7173b91
+					   & (~(T1_SIG_S | T1_SIG_SE | T1_SIG_SW | T1_SGN_S))) & (T1_SIG | T1_VISIT | T1_SIG_OTH));
Callum Lerwick 7173b91
 				} else {
Callum Lerwick 7173b91
-					agg = !(MACRO_t1_flags(1 + k,1 + i) & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
-						|| MACRO_t1_flags(1 + k + 1,1 + i) & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
-						|| MACRO_t1_flags(1 + k + 2,1 + i) & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
-						|| MACRO_t1_flags(1 + k + 3,1 + i) & (T1_SIG | T1_VISIT | T1_SIG_OTH));
Callum Lerwick 7173b91
+					agg = !(t1->flags[(k+1) + (i+1)*t1->flags_stride] & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
+					     || t1->flags[(k+2) + (i+1)*t1->flags_stride] & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
+					     || t1->flags[(k+3) + (i+1)*t1->flags_stride] & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
+					     || t1->flags[(k+4) + (i+1)*t1->flags_stride] & (T1_SIG | T1_VISIT | T1_SIG_OTH));
Callum Lerwick 7173b91
 				}
Callum Lerwick 7173b91
 			} else {
Callum Lerwick 7173b91
 				agg = 0;
Callum Lerwick 7173b91
@@ -642,7 +639,7 @@
Callum Lerwick 7173b91
 				vsc = ((cblksty & J2K_CCP_CBLKSTY_VSC) && (j == k + 3 || j == t1->h - 1)) ? 1 : 0;
Callum Lerwick 7173b91
 				t1_enc_clnpass_step(
Callum Lerwick 7173b91
 						t1,
Callum Lerwick 7173b91
-						&t1->flags[((j+1) * t1->flags_stride) + i + 1],
Callum Lerwick 7173b91
+						&t1->flags[(j+1) + (i+1)*t1->flags_stride],
Callum Lerwick 7173b91
 						&t1->data[(j * t1->w) + i],
Callum Lerwick 7173b91
 						orient,
Callum Lerwick 7173b91
 						bpno,
Callum Lerwick 7173b91
@@ -673,16 +670,16 @@
Callum Lerwick 7173b91
 		for (i = 0; i < t1->w; ++i) {
Callum Lerwick 7173b91
 			if (k + 3 < t1->h) {
Callum Lerwick 7173b91
 				if (cblksty & J2K_CCP_CBLKSTY_VSC) {
Callum Lerwick 7173b91
-					agg = !(MACRO_t1_flags(1 + k,1 + i) & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
-						|| MACRO_t1_flags(1 + k + 1,1 + i) & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
-						|| MACRO_t1_flags(1 + k + 2,1 + i) & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
-						|| (MACRO_t1_flags(1 + k + 3,1 + i) 
Callum Lerwick 7173b91
-						& (~(T1_SIG_S | T1_SIG_SE | T1_SIG_SW |	T1_SGN_S))) & (T1_SIG | T1_VISIT | T1_SIG_OTH));
Callum Lerwick 7173b91
+					agg = !(t1->flags[(k+1) + (i+1)*t1->flags_stride] & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
+					    ||  t1->flags[(k+2) + (i+1)*t1->flags_stride] & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
+					    ||  t1->flags[(k+3) + (i+1)*t1->flags_stride] & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
+					    || (t1->flags[(k+4) + (i+1)*t1->flags_stride] 
Callum Lerwick 7173b91
+					   & (~(T1_SIG_S | T1_SIG_SE | T1_SIG_SW | T1_SGN_S))) & (T1_SIG | T1_VISIT | T1_SIG_OTH));
Callum Lerwick 7173b91
 				} else {
Callum Lerwick 7173b91
-					agg = !(MACRO_t1_flags(1 + k,1 + i) & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
-						|| MACRO_t1_flags(1 + k + 1,1 + i) & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
-						|| MACRO_t1_flags(1 + k + 2,1 + i) & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
-						|| MACRO_t1_flags(1 + k + 3,1 + i) & (T1_SIG | T1_VISIT | T1_SIG_OTH));
Callum Lerwick 7173b91
+					agg = !(t1->flags[(k+1) + (i+1)*t1->flags_stride] & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
+					     || t1->flags[(k+2) + (i+1)*t1->flags_stride] & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
+					     || t1->flags[(k+3) + (i+1)*t1->flags_stride] & (T1_SIG | T1_VISIT | T1_SIG_OTH)
Callum Lerwick 7173b91
+					     || t1->flags[(k+4) + (i+1)*t1->flags_stride] & (T1_SIG | T1_VISIT | T1_SIG_OTH));
Callum Lerwick 7173b91
 				}
Callum Lerwick 7173b91
 			} else {
Callum Lerwick 7173b91
 				agg = 0;
Callum Lerwick 7173b91
@@ -702,7 +699,7 @@
Callum Lerwick 7173b91
 				vsc = ((cblksty & J2K_CCP_CBLKSTY_VSC) && (j == k + 3 || j == t1->h - 1)) ? 1 : 0;
Callum Lerwick 7173b91
 				t1_dec_clnpass_step(
Callum Lerwick 7173b91
 						t1,
Callum Lerwick 7173b91
-						&t1->flags[((j+1) * t1->flags_stride) + i + 1],
Callum Lerwick 7173b91
+						&t1->flags[(j+1) + (i+1)*t1->flags_stride],
Callum Lerwick 7173b91
 						&t1->data[(j * t1->w) + i],
Callum Lerwick 7173b91
 						orient,
Callum Lerwick 7173b91
 						oneplushalf,
Callum Lerwick 7173b91
@@ -770,8 +767,8 @@
Callum Lerwick 7173b91
 	}
Callum Lerwick 7173b91
 	memset(t1->data,0,datasize * sizeof(int));
Callum Lerwick 7173b91
 
Callum Lerwick 7173b91
-	t1->flags_stride=w+2;
Callum Lerwick 7173b91
-	flagssize=t1->flags_stride * (h+2);
Callum Lerwick 7173b91
+	t1->flags_stride=h+2;
Callum Lerwick 7173b91
+	flagssize=t1->flags_stride * (w+2);
Callum Lerwick 7173b91
 
Callum Lerwick 7173b91
 	if(flagssize > t1->flagssize){
Callum Lerwick 7173b91
 		opj_aligned_free(t1->flags);
Callum Lerwick 7173b91
diff -urN -x '*.orig' -x '*.rej' -x '*~' -x '.*' OpenJPEG.orig/libopenjpeg/t1.h OpenJPEG.patched/libopenjpeg/t1.h
Callum Lerwick 7173b91
--- OpenJPEG.orig/libopenjpeg/t1.h	2007-05-22 08:14:13.000000000 -0500
Callum Lerwick 7173b91
+++ OpenJPEG.patched/libopenjpeg/t1.h	2007-08-23 05:44:00.000000000 -0500
Callum Lerwick 7173b91
@@ -108,8 +108,6 @@
Callum Lerwick 7173b91
 	int flags_stride;
Callum Lerwick 7173b91
 } opj_t1_t;
Callum Lerwick 7173b91
 
Callum Lerwick 7173b91
-#define MACRO_t1_flags(x,y) t1->flags[((x)*(t1->flags_stride))+(y)]
Callum Lerwick 7173b91
-
Callum Lerwick 7173b91
 /** @name Exported functions */
Callum Lerwick 7173b91
 /*@{*/
Callum Lerwick 7173b91
 /* ----------------------------------------------------------------------- */