summaryrefslogtreecommitdiff
path: root/pngrtran.c
diff options
context:
space:
mode:
Diffstat (limited to 'pngrtran.c')
-rw-r--r--pngrtran.c36
1 files changed, 24 insertions, 12 deletions
diff --git a/pngrtran.c b/pngrtran.c
index 0a760cef0..fc1e48ab7 100644
--- a/pngrtran.c
+++ b/pngrtran.c
@@ -1,8 +1,8 @@
/* pngrtran.c - transforms the data in a row for PNG readers
*
- * Last changed in libpng 1.2.51 [February 6, 2014]
- * Copyright (c) 1998-2014 Glenn Randers-Pehrson
+ * Last changed in libpng 1.2.53 [February 6, 2014]
+ * 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.)
*
@@ -2410,10 +2410,14 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
for (i = 0; i < row_width; i++)
{
png_uint_16 red, green, blue, w;
+ png_byte hi,lo;
- 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;
+ 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)
w = red;
@@ -2445,10 +2449,14 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
for (i = 0; i < row_width; i++)
{
png_uint_16 red, green, blue, gray16;
+ png_byte hi,lo;
- 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;
+ 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;
@@ -2508,10 +2516,14 @@ png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row)
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)
w = red;