--- a/jdk/src/java.desktop/share/native/libsplashscreen/libpng/pngrtran.c Thu Jan 21 13:41:02 2016 +0530
+++ b/jdk/src/java.desktop/share/native/libsplashscreen/libpng/pngrtran.c Thu Jan 21 14:49:02 2016 -0800
@@ -29,8 +29,8 @@
* However, the following notice accompanied the original version of this
* file and, per its terms, should not be removed:
*
- * Last changed in libpng 1.6.15 [November 20, 2014]
- * Copyright (c) 1998-2014 Glenn Randers-Pehrson
+ * Last changed in libpng 1.6.19 [November 12, 2015]
+ * Copyright (c) 1998-2015 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
*
@@ -1004,7 +1004,6 @@
default:
png_error(png_ptr, "invalid error action to rgb_to_gray");
- break;
}
if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
@@ -2025,7 +2024,7 @@
# endif
# else
- /* No 16 bit support: force chopping 16-bit input down to 8, in this case
+ /* No 16-bit support: force chopping 16-bit input down to 8, in this case
* the app program can chose if both APIs are available by setting the
* correct scaling to use.
*/
@@ -2126,10 +2125,10 @@
defined(PNG_READ_USER_TRANSFORM_SUPPORTED)
if ((png_ptr->transformations & PNG_USER_TRANSFORM) != 0)
{
- if (info_ptr->bit_depth < png_ptr->user_transform_depth)
+ if (png_ptr->user_transform_depth != 0)
info_ptr->bit_depth = png_ptr->user_transform_depth;
- if (info_ptr->channels < png_ptr->user_transform_channels)
+ if (png_ptr->user_transform_channels != 0)
info_ptr->channels = png_ptr->user_transform_channels;
}
#endif
@@ -2385,7 +2384,7 @@
if (++channel >= channels)
channel = 0;
*bp++ = (png_byte)(value >> 8);
- *bp++ = (png_byte)(value & 0xff);
+ *bp++ = (png_byte)value;
}
break;
}
@@ -2410,8 +2409,8 @@
while (sp < ep)
{
- /* The input is an array of 16 bit components, these must be scaled to
- * 8 bits each. For a 16 bit value V the required value (from the PNG
+ /* The input is an array of 16-bit components, these must be scaled to
+ * 8 bits each. For a 16-bit value V the required value (from the PNG
* specification) is:
*
* (V * 255) / 65535
@@ -2432,7 +2431,7 @@
*
* The approximate differs from the exact answer only when (vlo-vhi) is
* 128; it then gives a correction of +1 when the exact correction is
- * 0. This gives 128 errors. The exact answer (correct for all 16 bit
+ * 0. This gives 128 errors. The exact answer (correct for all 16-bit
* input values) is:
*
* error = (vlo-vhi+128)*65535 >> 24;
@@ -2690,9 +2689,9 @@
png_uint_32 row_width = row_info->width;
#ifdef PNG_READ_16BIT_SUPPORTED
- png_byte hi_filler = (png_byte)((filler>>8) & 0xff);
+ png_byte hi_filler = (png_byte)(filler>>8);
#endif
- png_byte lo_filler = (png_byte)(filler & 0xff);
+ png_byte lo_filler = (png_byte)filler;
png_debug(1, "in png_do_read_filler");
@@ -2743,13 +2742,13 @@
png_bytep dp = sp + (png_size_t)row_width * 2;
for (i = 1; i < row_width; i++)
{
+ *(--dp) = lo_filler;
*(--dp) = hi_filler;
- *(--dp) = lo_filler;
*(--dp) = *(--sp);
*(--dp) = *(--sp);
}
+ *(--dp) = lo_filler;
*(--dp) = hi_filler;
- *(--dp) = lo_filler;
row_info->channels = 2;
row_info->pixel_depth = 32;
row_info->rowbytes = row_width * 4;
@@ -2764,8 +2763,8 @@
{
*(--dp) = *(--sp);
*(--dp) = *(--sp);
+ *(--dp) = lo_filler;
*(--dp) = hi_filler;
- *(--dp) = lo_filler;
}
row_info->channels = 2;
row_info->pixel_depth = 32;
@@ -2824,8 +2823,8 @@
png_bytep dp = sp + (png_size_t)row_width * 2;
for (i = 1; i < row_width; i++)
{
+ *(--dp) = lo_filler;
*(--dp) = hi_filler;
- *(--dp) = lo_filler;
*(--dp) = *(--sp);
*(--dp) = *(--sp);
*(--dp) = *(--sp);
@@ -2833,8 +2832,8 @@
*(--dp) = *(--sp);
*(--dp) = *(--sp);
}
+ *(--dp) = lo_filler;
*(--dp) = hi_filler;
- *(--dp) = lo_filler;
row_info->channels = 4;
row_info->pixel_depth = 64;
row_info->rowbytes = row_width * 8;
@@ -2853,8 +2852,8 @@
*(--dp) = *(--sp);
*(--dp) = *(--sp);
*(--dp) = *(--sp);
+ *(--dp) = lo_filler;
*(--dp) = hi_filler;
- *(--dp) = lo_filler;
}
row_info->channels = 4;
@@ -3115,10 +3114,11 @@
for (i = 0; i < row_width; i++)
{
png_uint_16 red, green, blue, w;
-
- red = (png_uint_16)(((*(sp)) << 8) | *(sp + 1)); sp += 2;
- green = (png_uint_16)(((*(sp)) << 8) | *(sp + 1)); sp += 2;
- blue = (png_uint_16)(((*(sp)) << 8) | *(sp + 1)); sp += 2;
+ png_byte hi,lo;
+
+ hi=*(sp)++; lo=*(sp)++; red = (png_uint_16)((hi << 8) | (lo));
+ hi=*(sp)++; lo=*(sp)++; green = (png_uint_16)((hi << 8) | (lo));
+ hi=*(sp)++; lo=*(sp)++; blue = (png_uint_16)((hi << 8) | (lo));
if (red == green && red == blue)
{
@@ -3132,16 +3132,16 @@
else
{
- png_uint_16 red_1 = png_ptr->gamma_16_to_1[(red&0xff)
+ png_uint_16 red_1 = png_ptr->gamma_16_to_1[(red & 0xff)
>> png_ptr->gamma_shift][red>>8];
png_uint_16 green_1 =
- png_ptr->gamma_16_to_1[(green&0xff) >>
+ png_ptr->gamma_16_to_1[(green & 0xff) >>
png_ptr->gamma_shift][green>>8];
- png_uint_16 blue_1 = png_ptr->gamma_16_to_1[(blue&0xff)
+ png_uint_16 blue_1 = png_ptr->gamma_16_to_1[(blue & 0xff)
>> png_ptr->gamma_shift][blue>>8];
png_uint_16 gray16 = (png_uint_16)((rc*red_1 + gc*green_1
+ bc*blue_1 + 16384)>>15);
- w = png_ptr->gamma_16_from_1[(gray16&0xff) >>
+ w = png_ptr->gamma_16_from_1[(gray16 & 0xff) >>
png_ptr->gamma_shift][gray16 >> 8];
rgb_error |= 1;
}
@@ -3166,17 +3166,18 @@
for (i = 0; i < row_width; i++)
{
png_uint_16 red, green, blue, gray16;
-
- red = (png_uint_16)(((*(sp)) << 8) | *(sp + 1)); sp += 2;
- green = (png_uint_16)(((*(sp)) << 8) | *(sp + 1)); sp += 2;
- blue = (png_uint_16)(((*(sp)) << 8) | *(sp + 1)); sp += 2;
+ png_byte hi,lo;
+
+ hi=*(sp)++; lo=*(sp)++; red = (png_uint_16)((hi << 8) | (lo));
+ hi=*(sp)++; lo=*(sp)++; green = (png_uint_16)((hi << 8) | (lo));
+ hi=*(sp)++; lo=*(sp)++; blue = (png_uint_16)((hi << 8) | (lo));
if (red != green || red != blue)
rgb_error |= 1;
- /* From 1.5.5 in the 16 bit case do the accurate conversion even
+ /* From 1.5.5 in the 16-bit case do the accurate conversion even
* in the 'fast' case - this is because this is where the code
- * ends up when handling linear 16 bit data.
+ * ends up when handling linear 16-bit data.
*/
gray16 = (png_uint_16)((rc*red + gc*green + bc*blue + 16384) >>
15);
@@ -3341,7 +3342,7 @@
if ((png_uint_16)((*sp >> shift) & 0x0f)
== png_ptr->trans_color.gray)
{
- unsigned int tmp = *sp & (0xf0f >> (4 - shift));
+ unsigned int tmp = *sp & (0x0f0f >> (4 - shift));
tmp |= png_ptr->background.gray << shift;
*sp = (png_byte)(tmp & 0xff);
}
@@ -3351,7 +3352,7 @@
unsigned int p = (*sp >> shift) & 0x0f;
unsigned int g = (gamma_table[p | (p << 4)] >> 4) &
0x0f;
- unsigned int tmp = *sp & (0xf0f >> (4 - shift));
+ unsigned int tmp = *sp & (0x0f0f >> (4 - shift));
tmp |= g << shift;
*sp = (png_byte)(tmp & 0xff);
}
@@ -3377,7 +3378,7 @@
if ((png_uint_16)((*sp >> shift) & 0x0f)
== png_ptr->trans_color.gray)
{
- unsigned int tmp = *sp & (0xf0f >> (4 - shift));
+ unsigned int tmp = *sp & (0x0f0f >> (4 - shift));
tmp |= png_ptr->background.gray << shift;
*sp = (png_byte)(tmp & 0xff);
}
@@ -3695,7 +3696,8 @@
if (optimize != 0)
w = v;
else
- w = gamma_16_from_1[(v&0xff) >> gamma_shift][v >> 8];
+ w = gamma_16_from_1[(v & 0xff) >>
+ gamma_shift][v >> 8];
*sp = (png_byte)((w >> 8) & 0xff);
*(sp + 1) = (png_byte)(w & 0xff);
}
@@ -3859,7 +3861,7 @@
v = gamma_16_to_1[*(sp + 1) >> gamma_shift][*sp];
png_composite_16(w, v, a, png_ptr->background_1.red);
if (optimize == 0)
- w = gamma_16_from_1[((w&0xff) >> gamma_shift)][w >>
+ w = gamma_16_from_1[((w & 0xff) >> gamma_shift)][w >>
8];
*sp = (png_byte)((w >> 8) & 0xff);
*(sp + 1) = (png_byte)(w & 0xff);
@@ -3867,7 +3869,7 @@
v = gamma_16_to_1[*(sp + 3) >> gamma_shift][*(sp + 2)];
png_composite_16(w, v, a, png_ptr->background_1.green);
if (optimize == 0)
- w = gamma_16_from_1[((w&0xff) >> gamma_shift)][w >>
+ w = gamma_16_from_1[((w & 0xff) >> gamma_shift)][w >>
8];
*(sp + 2) = (png_byte)((w >> 8) & 0xff);
@@ -3876,7 +3878,7 @@
v = gamma_16_to_1[*(sp + 5) >> gamma_shift][*(sp + 4)];
png_composite_16(w, v, a, png_ptr->background_1.blue);
if (optimize == 0)
- w = gamma_16_from_1[((w&0xff) >> gamma_shift)][w >>
+ w = gamma_16_from_1[((w & 0xff) >> gamma_shift)][w >>
8];
*(sp + 4) = (png_byte)((w >> 8) & 0xff);
@@ -4485,7 +4487,7 @@
for (i = 0; i < row_width; i++)
{
- if (*sp == gray)
+ if ((*sp & 0xffU) == gray)
*dp-- = 0;
else
@@ -4503,7 +4505,8 @@
dp = row + (row_info->rowbytes << 1) - 1;
for (i = 0; i < row_width; i++)
{
- if (*(sp - 1) == gray_high && *(sp) == gray_low)
+ if ((*(sp - 1) & 0xffU) == gray_high &&
+ (*(sp) & 0xffU) == gray_low)
{
*dp-- = 0;
*dp-- = 0;
@@ -4865,7 +4868,7 @@
/* Because PNG_COMPOSE does the gamma transform if there is something to
* do (if there is an alpha channel or transparency.)
*/
- !((png_ptr->transformations & PNG_COMPOSE) &&
+ !((png_ptr->transformations & PNG_COMPOSE) != 0 &&
((png_ptr->num_trans != 0) ||
(png_ptr->color_type & PNG_COLOR_MASK_ALPHA) != 0)) &&
#endif