summaryrefslogtreecommitdiff
path: root/png/pngwrite.c
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2026-01-20 18:01:12 +0100
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2026-01-20 18:01:12 +0100
commit2f7d7adfcf4bec55fa5e007947e4a455e85d8930 (patch)
tree2258a700e13d8582fcf5eedb30394c78641d739a /png/pngwrite.c
parentd30ca1866463c4091c3e0bcf5ca730f409ddc78d (diff)
Update bundled libpng to last upstream version 1.6.54
Diffstat (limited to 'png/pngwrite.c')
-rw-r--r--png/pngwrite.c55
1 files changed, 29 insertions, 26 deletions
diff --git a/png/pngwrite.c b/png/pngwrite.c
index 35a5d17b6..362a8c3e1 100644
--- a/png/pngwrite.c
+++ b/png/pngwrite.c
@@ -1,6 +1,6 @@
/* pngwrite.c - general routines to write a PNG file
*
- * Copyright (c) 2018-2025 Cosmin Truta
+ * Copyright (c) 2018-2026 Cosmin Truta
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
* Copyright (c) 1996-1997 Andreas Dilger
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
@@ -542,7 +542,8 @@ png_convert_from_time_t(png_timep ptime, time_t ttime)
/* Initialize png_ptr structure, and allocate any memory needed */
PNG_FUNCTION(png_structp,PNGAPI
png_create_write_struct,(png_const_charp user_png_ver, png_voidp error_ptr,
- png_error_ptr error_fn, png_error_ptr warn_fn),PNG_ALLOCATED)
+ png_error_ptr error_fn, png_error_ptr warn_fn),
+ PNG_ALLOCATED)
{
#ifndef PNG_USER_MEM_SUPPORTED
png_structrp png_ptr = png_create_png_struct(user_png_ver, error_ptr,
@@ -556,7 +557,8 @@ png_create_write_struct,(png_const_charp user_png_ver, png_voidp error_ptr,
PNG_FUNCTION(png_structp,PNGAPI
png_create_write_struct_2,(png_const_charp user_png_ver, png_voidp error_ptr,
png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr,
- png_malloc_ptr malloc_fn, png_free_ptr free_fn),PNG_ALLOCATED)
+ png_malloc_ptr malloc_fn, png_free_ptr free_fn),
+ PNG_ALLOCATED)
{
png_structrp png_ptr = png_create_png_struct(user_png_ver, error_ptr,
error_fn, warn_fn, mem_ptr, malloc_fn, free_fn);
@@ -1376,8 +1378,8 @@ png_set_write_status_fn(png_structrp png_ptr, png_write_status_ptr write_row_fn)
#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED
void PNGAPI
-png_set_write_user_transform_fn(png_structrp png_ptr, png_user_transform_ptr
- write_user_transform_fn)
+png_set_write_user_transform_fn(png_structrp png_ptr,
+ png_user_transform_ptr write_user_transform_fn)
{
png_debug(1, "in png_set_write_user_transform_fn");
@@ -1393,7 +1395,7 @@ png_set_write_user_transform_fn(png_structrp png_ptr, png_user_transform_ptr
#ifdef PNG_INFO_IMAGE_SUPPORTED
void PNGAPI
png_write_png(png_structrp png_ptr, png_inforp info_ptr,
- int transforms, voidp params)
+ int transforms, png_voidp params)
{
png_debug(1, "in png_write_png");
@@ -1558,18 +1560,20 @@ png_image_write_init(png_imagep image)
/* Arguments to png_image_write_main: */
typedef struct
{
- /* Arguments: */
- png_imagep image;
+ /* Arguments */
+ png_imagep image;
png_const_voidp buffer;
- png_int_32 row_stride;
+ png_int_32 row_stride;
png_const_voidp colormap;
- int convert_to_8bit;
- /* Local variables: */
+ int convert_to_8bit;
+
+ /* Instance variables */
png_const_voidp first_row;
- ptrdiff_t row_bytes;
- png_voidp local_row;
+ png_voidp local_row;
+ ptrdiff_t row_step;
+
/* Byte count for memory writing */
- png_bytep memory;
+ png_bytep memory;
png_alloc_size_t memory_bytes; /* not used for STDIO */
png_alloc_size_t output_bytes; /* running total */
} png_image_write_control;
@@ -1676,7 +1680,7 @@ png_write_image_16bit(png_voidp argument)
}
png_write_row(png_ptr, png_voidcast(png_const_bytep, display->local_row));
- input_row += (png_uint_16)display->row_bytes/(sizeof (png_uint_16));
+ input_row += display->row_step / 2;
}
return 1;
@@ -1802,7 +1806,7 @@ png_write_image_8bit(png_voidp argument)
png_write_row(png_ptr, png_voidcast(png_const_bytep,
display->local_row));
- input_row += (png_uint_16)display->row_bytes/(sizeof (png_uint_16));
+ input_row += display->row_step / 2;
} /* while y */
}
@@ -1827,7 +1831,7 @@ png_write_image_8bit(png_voidp argument)
}
png_write_row(png_ptr, output_row);
- input_row += (png_uint_16)display->row_bytes/(sizeof (png_uint_16));
+ input_row += display->row_step / 2;
}
}
@@ -2143,16 +2147,16 @@ png_image_write_main(png_voidp argument)
{
png_const_bytep row = png_voidcast(png_const_bytep, display->buffer);
- ptrdiff_t row_bytes = display->row_stride;
+ ptrdiff_t row_step = display->row_stride;
if (linear != 0)
- row_bytes *= (sizeof (png_uint_16));
+ row_step *= 2;
- if (row_bytes < 0)
- row += (image->height-1) * (-row_bytes);
+ if (row_step < 0)
+ row += (image->height-1) * (-row_step);
display->first_row = row;
- display->row_bytes = row_bytes;
+ display->row_step = row_step;
}
/* Apply 'fast' options if the flag is set. */
@@ -2173,8 +2177,7 @@ png_image_write_main(png_voidp argument)
* before it is written. This only applies when the input is 16-bit and
* either there is an alpha channel or it is converted to 8-bit.
*/
- if ((linear != 0 && alpha != 0 ) ||
- (colormap == 0 && display->convert_to_8bit != 0))
+ if (linear != 0 && (alpha != 0 || display->convert_to_8bit != 0))
{
png_bytep row = png_voidcast(png_bytep, png_malloc(png_ptr,
png_get_rowbytes(png_ptr, info_ptr)));
@@ -2200,13 +2203,13 @@ png_image_write_main(png_voidp argument)
else
{
png_const_bytep row = png_voidcast(png_const_bytep, display->first_row);
- ptrdiff_t row_bytes = display->row_bytes;
+ ptrdiff_t row_step = display->row_step;
png_uint_32 y = image->height;
for (; y > 0; --y)
{
png_write_row(png_ptr, row);
- row += row_bytes;
+ row += row_step;
}
}