+#ifdef SUPPORT_DICOMOBJECTS_BUG
+ unsigned int xindex;
+ int Ra, Rb, Rc;
+ int min, max, temp;
+ SHIFT_TEMPS
+ if( dicomobjectsbug == -1 )
+ {
+ dicomobjectsbug = 0; /* no bug by default */
+
+ Rb = GETJSAMPLE(prev_row[0]);
+ Ra = (diff_buf[0] + PREDICTOR2) & 0xFFFF;
+ undiff_buf[0] = Ra;
+ temp = min = max = undiff_buf[0];
+
+ for (xindex = 1; xindex < width; xindex++) {
+ Rc = Rb;
+ Rb = GETJSAMPLE(prev_row[xindex]);
+ Ra = (diff_buf[xindex] + PREDICTOR6) & 0xFFFF;
+ temp = Ra;
+ min = temp < min ? temp : min;
+ max = temp > max ? temp : max;
+ }
+ if( (max - min) > 50000) /* magic number */
+ {
+ dicomobjectsbug = 1;
+ }
+ }
+ if(dicomobjectsbug)
+ {
+ UNDIFFERENCE_2D_BUG(PREDICTOR6_BUG);
+ }
+ else
+ {
+ UNDIFFERENCE_2D_BUG(PREDICTOR6);
+ }
+#else