Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
d4ce1fd7
Commit
d4ce1fd7
authored
Nov 08, 2022
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
png: Import upstream release 1.6.38.
parent
927f0530
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
106 additions
and
111 deletions
+106
-111
AUTHORS
libs/png/AUTHORS
+6
-2
LICENSE
libs/png/LICENSE
+2
-2
png.c
libs/png/png.c
+7
-7
png.h
libs/png/png.h
+13
-13
pngconf.h
libs/png/pngconf.h
+4
-4
pngget.c
libs/png/pngget.c
+7
-7
pngpriv.h
libs/png/pngpriv.h
+28
-37
pngread.c
libs/png/pngread.c
+0
-3
pngrtran.c
libs/png/pngrtran.c
+1
-1
pngrutil.c
libs/png/pngrutil.c
+18
-18
pngset.c
libs/png/pngset.c
+8
-5
pngstruct.h
libs/png/pngstruct.h
+1
-11
pngwrite.c
libs/png/pngwrite.c
+11
-1
No files found.
libs/png/AUTHORS
View file @
d4ce1fd7
...
@@ -20,7 +20,9 @@ Authors, for copyright and licensing purposes.
...
@@ -20,7 +20,9 @@ Authors, for copyright and licensing purposes.
* Mans Rullgard
* Mans Rullgard
* Matt Sarett
* Matt Sarett
* Mike Klein
* Mike Klein
* Pascal Massimino
* Paul Schmidt
* Paul Schmidt
* Qiang Zhou
* Sam Bushell
* Sam Bushell
* Samuel Williams
* Samuel Williams
* Simon-Pierre Cadieux
* Simon-Pierre Cadieux
...
@@ -35,10 +37,12 @@ Authors, for copyright and licensing purposes.
...
@@ -35,10 +37,12 @@ Authors, for copyright and licensing purposes.
* Google Inc.
* Google Inc.
- Matt Sarett
- Matt Sarett
- Mike Klein
- Mike Klein
- Dan Field
- Sami Boukortt
The build projects, the build scripts, the test scripts, and other
The build projects, the build scripts, the test scripts, and other
files in the "
projects", "scripts" and "tests" directories, have other
files in the "
ci", "projects", "scripts" and "tests" directories, have
copyright owners, but are released under the libpng license.
other
copyright owners, but are released under the libpng license.
Some files in the "contrib" directory, and some tools-generated files
Some files in the "contrib" directory, and some tools-generated files
that are distributed with libpng, have other copyright owners, and are
that are distributed with libpng, have other copyright owners, and are
...
...
libs/png/LICENSE
View file @
d4ce1fd7
...
@@ -4,8 +4,8 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE
...
@@ -4,8 +4,8 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE
PNG Reference Library License version 2
PNG Reference Library License version 2
---------------------------------------
---------------------------------------
* Copyright (c) 1995-20
19
The PNG Reference Library Authors.
* Copyright (c) 1995-20
22
The PNG Reference Library Authors.
* Copyright (c) 2018-20
19
Cosmin Truta.
* Copyright (c) 2018-20
22
Cosmin Truta.
* Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson.
* Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson.
* Copyright (c) 1996-1997 Andreas Dilger.
* Copyright (c) 1996-1997 Andreas Dilger.
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
...
...
libs/png/png.c
View file @
d4ce1fd7
/* png.c - location for general purpose libpng functions
/* png.c - location for general purpose libpng functions
*
*
* Copyright (c) 2018-20
19
Cosmin Truta
* Copyright (c) 2018-20
22
Cosmin Truta
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
* Copyright (c) 1996-1997 Andreas Dilger
* Copyright (c) 1996-1997 Andreas Dilger
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
#include "pngpriv.h"
#include "pngpriv.h"
/* Generate a compiler error if there is an old png.h in the search path. */
/* Generate a compiler error if there is an old png.h in the search path. */
typedef
png_libpng_version_1_6_3
7
Your_png_h_is_not_version_1_6_37
;
typedef
png_libpng_version_1_6_3
8
Your_png_h_is_not_version_1_6_38
;
#ifdef __GNUC__
#ifdef __GNUC__
/* The version tests may need to be added to, but the problem warning has
/* The version tests may need to be added to, but the problem warning has
...
@@ -720,7 +720,7 @@ png_init_io(png_structrp png_ptr, png_FILE_p fp)
...
@@ -720,7 +720,7 @@ png_init_io(png_structrp png_ptr, png_FILE_p fp)
*
*
* Where UNSIGNED_MAX is the appropriate maximum unsigned value, so when the
* Where UNSIGNED_MAX is the appropriate maximum unsigned value, so when the
* negative integral value is added the result will be an unsigned value
* negative integral value is added the result will be an unsigned value
* correspnding to the 2's complement representation.
* corresp
o
nding to the 2's complement representation.
*/
*/
void
PNGAPI
void
PNGAPI
png_save_int_32
(
png_bytep
buf
,
png_int_32
i
)
png_save_int_32
(
png_bytep
buf
,
png_int_32
i
)
...
@@ -815,8 +815,8 @@ png_get_copyright(png_const_structrp png_ptr)
...
@@ -815,8 +815,8 @@ png_get_copyright(png_const_structrp png_ptr)
return
PNG_STRING_COPYRIGHT
return
PNG_STRING_COPYRIGHT
#else
#else
return
PNG_STRING_NEWLINE
\
return
PNG_STRING_NEWLINE
\
"libpng version 1.6.3
7
"
PNG_STRING_NEWLINE
\
"libpng version 1.6.3
8
"
PNG_STRING_NEWLINE
\
"Copyright (c) 2018-20
19
Cosmin Truta"
PNG_STRING_NEWLINE
\
"Copyright (c) 2018-20
22
Cosmin Truta"
PNG_STRING_NEWLINE
\
"Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson"
\
"Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson"
\
PNG_STRING_NEWLINE
\
PNG_STRING_NEWLINE
\
"Copyright (c) 1996-1997 Andreas Dilger"
PNG_STRING_NEWLINE
\
"Copyright (c) 1996-1997 Andreas Dilger"
PNG_STRING_NEWLINE
\
...
@@ -1843,12 +1843,12 @@ png_icc_profile_error(png_const_structrp png_ptr, png_colorspacerp colorspace,
...
@@ -1843,12 +1843,12 @@ png_icc_profile_error(png_const_structrp png_ptr, png_colorspacerp colorspace,
# ifdef PNG_WARNINGS_SUPPORTED
# ifdef PNG_WARNINGS_SUPPORTED
else
else
{
{
char
number
[
PNG_NUMBER_BUFFER_SIZE
];
/* +24 = 114*/
char
number
[
PNG_NUMBER_BUFFER_SIZE
];
/* +24 = 114
*/
pos
=
png_safecat
(
message
,
(
sizeof
message
),
pos
,
pos
=
png_safecat
(
message
,
(
sizeof
message
),
pos
,
png_format_number
(
number
,
number
+
(
sizeof
number
),
png_format_number
(
number
,
number
+
(
sizeof
number
),
PNG_NUMBER_FORMAT_x
,
value
));
PNG_NUMBER_FORMAT_x
,
value
));
pos
=
png_safecat
(
message
,
(
sizeof
message
),
pos
,
"h: "
);
/*
+2 = 116
*/
pos
=
png_safecat
(
message
,
(
sizeof
message
),
pos
,
"h: "
);
/*
+2 = 116
*/
}
}
# endif
# endif
/* The 'reason' is an arbitrary message, allow +79 maximum 195 */
/* The 'reason' is an arbitrary message, allow +79 maximum 195 */
...
...
libs/png/png.h
View file @
d4ce1fd7
/* png.h - header file for PNG reference library
/* png.h - header file for PNG reference library
*
*
* libpng version 1.6.3
7 - April 14, 2019
* libpng version 1.6.3
8 - September 14, 2022
*
*
* Copyright (c) 2018-20
19
Cosmin Truta
* Copyright (c) 2018-20
22
Cosmin Truta
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
* Copyright (c) 1996-1997 Andreas Dilger
* Copyright (c) 1996-1997 Andreas Dilger
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
* libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger
* libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger
* libpng versions 0.97, January 1998, through 1.6.35, July 2018:
* libpng versions 0.97, January 1998, through 1.6.35, July 2018:
* Glenn Randers-Pehrson
* Glenn Randers-Pehrson
* libpng versions 1.6.36, December 2018, through 1.6.3
7, April 2019
:
* libpng versions 1.6.36, December 2018, through 1.6.3
8, September 2022
:
* Cosmin Truta
* Cosmin Truta
* See also "Contributing Authors", below.
* See also "Contributing Authors", below.
*/
*/
...
@@ -27,8 +27,8 @@
...
@@ -27,8 +27,8 @@
* PNG Reference Library License version 2
* PNG Reference Library License version 2
* ---------------------------------------
* ---------------------------------------
*
*
* * Copyright (c) 1995-20
19
The PNG Reference Library Authors.
* * Copyright (c) 1995-20
22
The PNG Reference Library Authors.
* * Copyright (c) 2018-20
19
Cosmin Truta.
* * Copyright (c) 2018-20
22
Cosmin Truta.
* * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson.
* * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson.
* * Copyright (c) 1996-1997 Andreas Dilger.
* * Copyright (c) 1996-1997 Andreas Dilger.
* * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
* * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
...
@@ -239,7 +239,7 @@
...
@@ -239,7 +239,7 @@
* ...
* ...
* 1.5.30 15 10530 15.so.15.30[.0]
* 1.5.30 15 10530 15.so.15.30[.0]
* ...
* ...
* 1.6.3
7 16 10637 16.so.16.37
[.0]
* 1.6.3
8 16 10638 16.so.16.38
[.0]
*
*
* Henceforth the source version will match the shared-library major and
* Henceforth the source version will match the shared-library major and
* minor numbers; the shared-library major version number will be used for
* minor numbers; the shared-library major version number will be used for
...
@@ -278,8 +278,8 @@
...
@@ -278,8 +278,8 @@
*/
*/
/* Version information for png.h - this should match the version in png.c */
/* Version information for png.h - this should match the version in png.c */
#define PNG_LIBPNG_VER_STRING "1.6.3
7
"
#define PNG_LIBPNG_VER_STRING "1.6.3
8
"
#define PNG_HEADER_VERSION_STRING " libpng version 1.6.3
7 - April 14, 2019
\n"
#define PNG_HEADER_VERSION_STRING " libpng version 1.6.3
8 - September 14, 2022
\n"
#define PNG_LIBPNG_VER_SONUM 16
#define PNG_LIBPNG_VER_SONUM 16
#define PNG_LIBPNG_VER_DLLNUM 16
#define PNG_LIBPNG_VER_DLLNUM 16
...
@@ -287,7 +287,7 @@
...
@@ -287,7 +287,7 @@
/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
/* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
#define PNG_LIBPNG_VER_MAJOR 1
#define PNG_LIBPNG_VER_MAJOR 1
#define PNG_LIBPNG_VER_MINOR 6
#define PNG_LIBPNG_VER_MINOR 6
#define PNG_LIBPNG_VER_RELEASE 3
7
#define PNG_LIBPNG_VER_RELEASE 3
8
/* This should be zero for a public release, or non-zero for a
/* This should be zero for a public release, or non-zero for a
* development version. [Deprecated]
* development version. [Deprecated]
...
@@ -318,7 +318,7 @@
...
@@ -318,7 +318,7 @@
* From version 1.0.1 it is:
* From version 1.0.1 it is:
* XXYYZZ, where XX=major, YY=minor, ZZ=release
* XXYYZZ, where XX=major, YY=minor, ZZ=release
*/
*/
#define PNG_LIBPNG_VER 1063
7
/* 1.6.37
*/
#define PNG_LIBPNG_VER 1063
8
/* 1.6.38
*/
/* Library configuration: these options cannot be changed after
/* Library configuration: these options cannot be changed after
* the library has been built.
* the library has been built.
...
@@ -428,7 +428,7 @@ extern "C" {
...
@@ -428,7 +428,7 @@ extern "C" {
/* This triggers a compiler error in png.c, if png.c and png.h
/* This triggers a compiler error in png.c, if png.c and png.h
* do not agree upon the version number.
* do not agree upon the version number.
*/
*/
typedef
char
*
png_libpng_version_1_6_3
7
;
typedef
char
*
png_libpng_version_1_6_3
8
;
/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info.
/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info.
*
*
...
@@ -1446,7 +1446,7 @@ PNG_EXPORT(66, void, png_set_crc_action, (png_structrp png_ptr, int crit_action,
...
@@ -1446,7 +1446,7 @@ PNG_EXPORT(66, void, png_set_crc_action, (png_structrp png_ptr, int crit_action,
* mainly useful for testing, as the defaults should work with most users.
* mainly useful for testing, as the defaults should work with most users.
* Those users who are tight on memory or want faster performance at the
* Those users who are tight on memory or want faster performance at the
* expense of compression can modify them. See the compression library
* expense of compression can modify them. See the compression library
* header file (zlib.h) for an expl
i
nation of the compression functions.
* header file (zlib.h) for an expl
a
nation of the compression functions.
*/
*/
/* Set the filtering method(s) used by libpng. Currently, the only valid
/* Set the filtering method(s) used by libpng. Currently, the only valid
...
@@ -1501,7 +1501,7 @@ PNG_FIXED_EXPORT(209, void, png_set_filter_heuristics_fixed,
...
@@ -1501,7 +1501,7 @@ PNG_FIXED_EXPORT(209, void, png_set_filter_heuristics_fixed,
* 0 - 9, corresponding directly to the zlib compression levels 0 - 9
* 0 - 9, corresponding directly to the zlib compression levels 0 - 9
* (0 - no compression, 9 - "maximal" compression). Note that tests have
* (0 - no compression, 9 - "maximal" compression). Note that tests have
* shown that zlib compression levels 3-6 usually perform as well as level 9
* shown that zlib compression levels 3-6 usually perform as well as level 9
* for PNG images, and do considerably fewer ca
cl
ulations. In the future,
* for PNG images, and do considerably fewer ca
lc
ulations. In the future,
* these values may not correspond directly to the zlib compression levels.
* these values may not correspond directly to the zlib compression levels.
*/
*/
#ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED
#ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED
...
...
libs/png/pngconf.h
View file @
d4ce1fd7
/* pngconf.h - machine-configurable file for libpng
/* pngconf.h - machine-configurable file for libpng
*
*
* libpng version 1.6.3
7
* libpng version 1.6.3
8
*
*
* Copyright (c) 2018-20
19
Cosmin Truta
* Copyright (c) 2018-20
22
Cosmin Truta
* Copyright (c) 1998-2002,2004,2006-2016,2018 Glenn Randers-Pehrson
* Copyright (c) 1998-2002,2004,2006-2016,2018 Glenn Randers-Pehrson
* Copyright (c) 1996-1997 Andreas Dilger
* Copyright (c) 1996-1997 Andreas Dilger
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
...
@@ -180,8 +180,8 @@
...
@@ -180,8 +180,8 @@
* compiler-specific macros to the values required to change the calling
* compiler-specific macros to the values required to change the calling
* conventions of the various functions.
* conventions of the various functions.
*/
*/
#if defined(_W
indows) || defined(_WINDOWS) || defined(WIN32) ||
\
#if defined(_W
IN32) || defined(__WIN32__) || defined(__NT__) ||
\
defined(_
WIN32) || defined(__WIN32__) || defined(_
_CYGWIN__)
defined(__CYGWIN__)
/* Windows system (DOS doesn't support DLLs). Includes builds under Cygwin or
/* Windows system (DOS doesn't support DLLs). Includes builds under Cygwin or
* MinGW on any architecture currently supported by Windows. Also includes
* MinGW on any architecture currently supported by Windows. Also includes
* Watcom builds but these need special treatment because they are not
* Watcom builds but these need special treatment because they are not
...
...
libs/png/pngget.c
View file @
d4ce1fd7
...
@@ -1151,7 +1151,7 @@ png_get_unknown_chunks(png_const_structrp png_ptr, png_inforp info_ptr,
...
@@ -1151,7 +1151,7 @@ png_get_unknown_chunks(png_const_structrp png_ptr, png_inforp info_ptr,
#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
#ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
png_byte
PNGAPI
png_byte
PNGAPI
png_get_rgb_to_gray_status
(
png_const_structrp
png_ptr
)
png_get_rgb_to_gray_status
(
png_const_structrp
png_ptr
)
{
{
return
(
png_byte
)(
png_ptr
?
png_ptr
->
rgb_to_gray_status
:
0
);
return
(
png_byte
)(
png_ptr
?
png_ptr
->
rgb_to_gray_status
:
0
);
}
}
...
@@ -1192,27 +1192,27 @@ png_get_compression_buffer_size(png_const_structrp png_ptr)
...
@@ -1192,27 +1192,27 @@ png_get_compression_buffer_size(png_const_structrp png_ptr)
/* These functions were added to libpng 1.2.6 and were enabled
/* These functions were added to libpng 1.2.6 and were enabled
* by default in libpng-1.4.0 */
* by default in libpng-1.4.0 */
png_uint_32
PNGAPI
png_uint_32
PNGAPI
png_get_user_width_max
(
png_const_structrp
png_ptr
)
png_get_user_width_max
(
png_const_structrp
png_ptr
)
{
{
return
(
png_ptr
?
png_ptr
->
user_width_max
:
0
);
return
(
png_ptr
?
png_ptr
->
user_width_max
:
0
);
}
}
png_uint_32
PNGAPI
png_uint_32
PNGAPI
png_get_user_height_max
(
png_const_structrp
png_ptr
)
png_get_user_height_max
(
png_const_structrp
png_ptr
)
{
{
return
(
png_ptr
?
png_ptr
->
user_height_max
:
0
);
return
(
png_ptr
?
png_ptr
->
user_height_max
:
0
);
}
}
/* This function was added to libpng 1.4.0 */
/* This function was added to libpng 1.4.0 */
png_uint_32
PNGAPI
png_uint_32
PNGAPI
png_get_chunk_cache_max
(
png_const_structrp
png_ptr
)
png_get_chunk_cache_max
(
png_const_structrp
png_ptr
)
{
{
return
(
png_ptr
?
png_ptr
->
user_chunk_cache_max
:
0
);
return
(
png_ptr
?
png_ptr
->
user_chunk_cache_max
:
0
);
}
}
/* This function was added to libpng 1.4.1 */
/* This function was added to libpng 1.4.1 */
png_alloc_size_t
PNGAPI
png_alloc_size_t
PNGAPI
png_get_chunk_malloc_max
(
png_const_structrp
png_ptr
)
png_get_chunk_malloc_max
(
png_const_structrp
png_ptr
)
{
{
return
(
png_ptr
?
png_ptr
->
user_chunk_malloc_max
:
0
);
return
(
png_ptr
?
png_ptr
->
user_chunk_malloc_max
:
0
);
}
}
...
@@ -1221,13 +1221,13 @@ png_get_chunk_malloc_max (png_const_structrp png_ptr)
...
@@ -1221,13 +1221,13 @@ png_get_chunk_malloc_max (png_const_structrp png_ptr)
/* These functions were added to libpng 1.4.0 */
/* These functions were added to libpng 1.4.0 */
#ifdef PNG_IO_STATE_SUPPORTED
#ifdef PNG_IO_STATE_SUPPORTED
png_uint_32
PNGAPI
png_uint_32
PNGAPI
png_get_io_state
(
png_const_structrp
png_ptr
)
png_get_io_state
(
png_const_structrp
png_ptr
)
{
{
return
png_ptr
->
io_state
;
return
png_ptr
->
io_state
;
}
}
png_uint_32
PNGAPI
png_uint_32
PNGAPI
png_get_io_chunk_type
(
png_const_structrp
png_ptr
)
png_get_io_chunk_type
(
png_const_structrp
png_ptr
)
{
{
return
png_ptr
->
chunk_name
;
return
png_ptr
->
chunk_name
;
}
}
...
...
libs/png/pngpriv.h
View file @
d4ce1fd7
/* pngpriv.h - private declarations for use inside libpng
/* pngpriv.h - private declarations for use inside libpng
*
*
* Copyright (c) 2018-20
19
Cosmin Truta
* Copyright (c) 2018-20
22
Cosmin Truta
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
* Copyright (c) 1996-1997 Andreas Dilger
* Copyright (c) 1996-1997 Andreas Dilger
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
...
@@ -174,7 +174,7 @@
...
@@ -174,7 +174,7 @@
# else
/* !defined __ARM_NEON__ */
# else
/* !defined __ARM_NEON__ */
/* The 'intrinsics' code simply won't compile without this -mfpu=neon:
/* The 'intrinsics' code simply won't compile without this -mfpu=neon:
*/
*/
# if !defined(__aarch64__)
# if !defined(__aarch64__)
&& !defined(_M_ARM64)
/* The assembler code currently does not work on ARM64 */
/* The assembler code currently does not work on ARM64 */
# define PNG_ARM_NEON_IMPLEMENTATION 2
# define PNG_ARM_NEON_IMPLEMENTATION 2
# endif
/* __aarch64__ */
# endif
/* __aarch64__ */
...
@@ -185,6 +185,8 @@
...
@@ -185,6 +185,8 @@
/* Use the intrinsics code by default. */
/* Use the intrinsics code by default. */
# define PNG_ARM_NEON_IMPLEMENTATION 1
# define PNG_ARM_NEON_IMPLEMENTATION 1
# endif
# endif
#else
/* PNG_ARM_NEON_OPT == 0 */
# define PNG_ARM_NEON_IMPLEMENTATION 0
#endif
/* PNG_ARM_NEON_OPT > 0 */
#endif
/* PNG_ARM_NEON_OPT > 0 */
#ifndef PNG_MIPS_MSA_OPT
#ifndef PNG_MIPS_MSA_OPT
...
@@ -263,11 +265,15 @@
...
@@ -263,11 +265,15 @@
# ifndef PNG_MIPS_MSA_IMPLEMENTATION
# ifndef PNG_MIPS_MSA_IMPLEMENTATION
# define PNG_MIPS_MSA_IMPLEMENTATION 1
# define PNG_MIPS_MSA_IMPLEMENTATION 1
# endif
# endif
#else
# define PNG_MIPS_MSA_IMPLEMENTATION 0
#endif
/* PNG_MIPS_MSA_OPT > 0 */
#endif
/* PNG_MIPS_MSA_OPT > 0 */
#if PNG_POWERPC_VSX_OPT > 0
#if PNG_POWERPC_VSX_OPT > 0
# define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_vsx
# define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_vsx
# define PNG_POWERPC_VSX_IMPLEMENTATION 1
# define PNG_POWERPC_VSX_IMPLEMENTATION 1
#else
# define PNG_POWERPC_VSX_IMPLEMENTATION 0
#endif
#endif
...
@@ -492,16 +498,7 @@
...
@@ -492,16 +498,7 @@
static_cast<type>(static_cast<const void*>(value))
static_cast<type>(static_cast<const void*>(value))
#else
#else
# define png_voidcast(type, value) (value)
# define png_voidcast(type, value) (value)
# ifdef _WIN64
# define png_constcast(type, value) ((type)(void*)(const void*)(value))
# ifdef __GNUC__
typedef
unsigned
long
long
png_ptruint
;
# else
typedef
unsigned
__int64
png_ptruint
;
# endif
# else
typedef
unsigned
long
png_ptruint
;
# endif
# define png_constcast(type, value) ((type)(png_ptruint)(const void*)(value))
# define png_aligncast(type, value) ((void*)(value))
# define png_aligncast(type, value) ((void*)(value))
# define png_aligncastconst(type, value) ((const void*)(value))
# define png_aligncastconst(type, value) ((const void*)(value))
#endif
/* __cplusplus */
#endif
/* __cplusplus */
...
@@ -543,9 +540,8 @@
...
@@ -543,9 +540,8 @@
# include <alloc.h>
# include <alloc.h>
#endif
#endif
#if defined(WIN32) || defined(_Windows) || defined(_WINDOWS) || \
#if defined(_WIN32) || defined(__WIN32__) || defined(__NT__)
defined(_WIN32) || defined(__WIN32__)
# include <windows.h>
# include <windows.h>
/* defines _WINDOWS_ macro */
#endif
#endif
#endif
/* PNG_VERSION_INFO_ONLY */
#endif
/* PNG_VERSION_INFO_ONLY */
...
@@ -554,24 +550,20 @@
...
@@ -554,24 +550,20 @@
* functions that are passed far data must be model-independent.
* functions that are passed far data must be model-independent.
*/
*/
/*
Memory model/platform independent f
ns */
/*
Platform-independent functio
ns */
#ifndef PNG_ABORT
#ifndef PNG_ABORT
# ifdef _WINDOWS_
# define PNG_ABORT() abort()
# define PNG_ABORT() ExitProcess(0)
# else
# define PNG_ABORT() abort()
# endif
#endif
#endif
/* These macros may need to be architecture dependent. */
/* These macros may need to be architecture dependent. */
#define PNG_ALIGN_NONE 0
/* do not use data alignment */
#define PNG_ALIGN_NONE
0
/* do not use data alignment */
#define PNG_ALIGN_ALWAYS 1
/* assume unaligned accesses are OK */
#define PNG_ALIGN_ALWAYS
1
/* assume unaligned accesses are OK */
#ifdef offsetof
#ifdef offsetof
# define PNG_ALIGN_OFFSET 2
/* use offsetof to determine alignment */
# define PNG_ALIGN_OFFSET
2
/* use offsetof to determine alignment */
#else
#else
# define PNG_ALIGN_OFFSET -1
/* prevent the use of this */
# define PNG_ALIGN_OFFSET -1
/* prevent the use of this */
#endif
#endif
#define PNG_ALIGN_SIZE 3
/* use sizeof to determine alignment */
#define PNG_ALIGN_SIZE
3
/* use sizeof to determine alignment */
#ifndef PNG_ALIGN_TYPE
#ifndef PNG_ALIGN_TYPE
/* Default to using aligned access optimizations and requiring alignment to a
/* Default to using aligned access optimizations and requiring alignment to a
...
@@ -585,26 +577,25 @@
...
@@ -585,26 +577,25 @@
/* This is used because in some compiler implementations non-aligned
/* This is used because in some compiler implementations non-aligned
* structure members are supported, so the offsetof approach below fails.
* structure members are supported, so the offsetof approach below fails.
* Set PNG_ALIGN_SIZE=0 for compiler combinations where unaligned access
* Set PNG_ALIGN_SIZE=0 for compiler combinations where unaligned access
* is good for performance. Do not do this unless you have tested the
result
* is good for performance. Do not do this unless you have tested the
* and understand it.
*
result
and understand it.
*/
*/
# define png_alignof(type) (sizeof
(type))
# define png_alignof(type) (sizeof(type))
#else
#else
# if PNG_ALIGN_TYPE == PNG_ALIGN_OFFSET
# if PNG_ALIGN_TYPE == PNG_ALIGN_OFFSET
#
define png_alignof(type) offsetof(struct{char c; type t;}, t)
# define png_alignof(type) offsetof(struct{char c; type t;}, t)
# else
# else
#
if PNG_ALIGN_TYPE == PNG_ALIGN_ALWAYS
# if PNG_ALIGN_TYPE == PNG_ALIGN_ALWAYS
#
define png_alignof(type) (1)
#
define png_alignof(type) 1
#
endif
# endif
/* Else leave png_alignof undefined to prevent use thereof */
/* Else leave png_alignof undefined to prevent use thereof */
# endif
# endif
#endif
#endif
/* This implicitly assumes alignment is always
to a power
of 2. */
/* This implicitly assumes alignment is always
a multiple
of 2. */
#ifdef png_alignof
#ifdef png_alignof
# define png_isaligned(ptr, type)\
# define png_isaligned(ptr, type) \
(((type)((const char*)ptr-(const char*)0) & \
(((type)(size_t)((const void*)(ptr)) & (type)(png_alignof(type)-1)) == 0)
(type)(png_alignof(type)-1)) == 0)
#else
#else
# define png_isaligned(ptr, type) 0
# define png_isaligned(ptr, type) 0
#endif
#endif
...
...
libs/png/pngread.c
View file @
d4ce1fd7
...
@@ -3452,7 +3452,6 @@ png_image_read_background(png_voidp argument)
...
@@ -3452,7 +3452,6 @@ png_image_read_background(png_voidp argument)
for
(
pass
=
0
;
pass
<
passes
;
++
pass
)
for
(
pass
=
0
;
pass
<
passes
;
++
pass
)
{
{
png_bytep
row
=
png_voidcast
(
png_bytep
,
display
->
first_row
);
unsigned
int
startx
,
stepx
,
stepy
;
unsigned
int
startx
,
stepx
,
stepy
;
png_uint_32
y
;
png_uint_32
y
;
...
@@ -3557,8 +3556,6 @@ png_image_read_background(png_voidp argument)
...
@@ -3557,8 +3556,6 @@ png_image_read_background(png_voidp argument)
inrow
+=
2
;
/* gray and alpha channel */
inrow
+=
2
;
/* gray and alpha channel */
}
}
row
+=
display
->
row_bytes
;
}
}
}
}
}
}
...
...
libs/png/pngrtran.c
View file @
d4ce1fd7
...
@@ -21,7 +21,7 @@
...
@@ -21,7 +21,7 @@
#ifdef PNG_ARM_NEON_IMPLEMENTATION
#ifdef PNG_ARM_NEON_IMPLEMENTATION
# if PNG_ARM_NEON_IMPLEMENTATION == 1
# if PNG_ARM_NEON_IMPLEMENTATION == 1
# define PNG_ARM_NEON_INTRINSICS_AVAILABLE
# define PNG_ARM_NEON_INTRINSICS_AVAILABLE
# if defined(_MSC_VER) && defined(_M_ARM64)
# if defined(_MSC_VER) &&
!defined(__clang__) &&
defined(_M_ARM64)
# include <arm64_neon.h>
# include <arm64_neon.h>
# else
# else
# include <arm_neon.h>
# include <arm_neon.h>
...
...
libs/png/pngrutil.c
View file @
d4ce1fd7
/* pngrutil.c - utilities to read a PNG file
/* pngrutil.c - utilities to read a PNG file
*
*
* Copyright (c) 2018 Cosmin Truta
* Copyright (c) 2018
-2022
Cosmin Truta
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
* Copyright (c) 1996-1997 Andreas Dilger
* Copyright (c) 1996-1997 Andreas Dilger
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
...
@@ -302,7 +302,6 @@ png_read_buffer(png_structrp png_ptr, png_alloc_size_t new_size, int warn)
...
@@ -302,7 +302,6 @@ png_read_buffer(png_structrp png_ptr, png_alloc_size_t new_size, int warn)
if
(
buffer
!=
NULL
&&
new_size
>
png_ptr
->
read_buffer_size
)
if
(
buffer
!=
NULL
&&
new_size
>
png_ptr
->
read_buffer_size
)
{
{
png_ptr
->
read_buffer
=
NULL
;
png_ptr
->
read_buffer
=
NULL
;
png_ptr
->
read_buffer
=
NULL
;
png_ptr
->
read_buffer_size
=
0
;
png_ptr
->
read_buffer_size
=
0
;
png_free
(
png_ptr
,
buffer
);
png_free
(
png_ptr
,
buffer
);
buffer
=
NULL
;
buffer
=
NULL
;
...
@@ -2076,21 +2075,22 @@ png_handle_eXIf(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
...
@@ -2076,21 +2075,22 @@ png_handle_eXIf(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
png_byte
buf
[
1
];
png_byte
buf
[
1
];
png_crc_read
(
png_ptr
,
buf
,
1
);
png_crc_read
(
png_ptr
,
buf
,
1
);
info_ptr
->
eXIf_buf
[
i
]
=
buf
[
0
];
info_ptr
->
eXIf_buf
[
i
]
=
buf
[
0
];
if
(
i
==
1
&&
buf
[
0
]
!=
'M'
&&
buf
[
0
]
!=
'I'
if
(
i
==
1
)
&&
info_ptr
->
eXIf_buf
[
0
]
!=
buf
[
0
])
{
{
png_crc_finish
(
png_ptr
,
length
);
if
((
buf
[
0
]
!=
'M'
&&
buf
[
0
]
!=
'I'
)
||
png_chunk_benign_error
(
png_ptr
,
"incorrect byte-order specifier"
);
(
info_ptr
->
eXIf_buf
[
0
]
!=
buf
[
0
]))
png_free
(
png_ptr
,
info_ptr
->
eXIf_buf
);
{
info_ptr
->
eXIf_buf
=
NULL
;
png_crc_finish
(
png_ptr
,
length
-
2
);
return
;
png_chunk_benign_error
(
png_ptr
,
"incorrect byte-order specifier"
);
png_free
(
png_ptr
,
info_ptr
->
eXIf_buf
);
info_ptr
->
eXIf_buf
=
NULL
;
return
;
}
}
}
}
}
if
(
png_crc_finish
(
png_ptr
,
0
)
!=
0
)
if
(
png_crc_finish
(
png_ptr
,
0
)
==
0
)
return
;
png_set_eXIf_1
(
png_ptr
,
info_ptr
,
length
,
info_ptr
->
eXIf_buf
);
png_set_eXIf_1
(
png_ptr
,
info_ptr
,
length
,
info_ptr
->
eXIf_buf
);
png_free
(
png_ptr
,
info_ptr
->
eXIf_buf
);
png_free
(
png_ptr
,
info_ptr
->
eXIf_buf
);
info_ptr
->
eXIf_buf
=
NULL
;
info_ptr
->
eXIf_buf
=
NULL
;
...
@@ -2126,8 +2126,9 @@ png_handle_hIST(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
...
@@ -2126,8 +2126,9 @@ png_handle_hIST(png_structrp png_ptr, png_inforp info_ptr, png_uint_32 length)
num
=
length
/
2
;
num
=
length
/
2
;
if
(
num
!=
(
unsigned
int
)
png_ptr
->
num_palette
||
if
(
length
!=
num
*
2
||
num
>
(
unsigned
int
)
PNG_MAX_PALETTE_LENGTH
)
num
!=
(
unsigned
int
)
png_ptr
->
num_palette
||
num
>
(
unsigned
int
)
PNG_MAX_PALETTE_LENGTH
)
{
{
png_crc_finish
(
png_ptr
,
length
);
png_crc_finish
(
png_ptr
,
length
);
png_chunk_benign_error
(
png_ptr
,
"invalid"
);
png_chunk_benign_error
(
png_ptr
,
"invalid"
);
...
@@ -4621,14 +4622,13 @@ defined(PNG_USER_TRANSFORM_PTR_SUPPORTED)
...
@@ -4621,14 +4622,13 @@ defined(PNG_USER_TRANSFORM_PTR_SUPPORTED)
*/
*/
{
{
png_bytep
temp
=
png_ptr
->
big_row_buf
+
32
;
png_bytep
temp
=
png_ptr
->
big_row_buf
+
32
;
int
extra
=
(
int
)((
temp
-
(
png_bytep
)
0
)
&
0x0f
)
;
size_t
extra
=
(
size_t
)
temp
&
0x0f
;
png_ptr
->
row_buf
=
temp
-
extra
-
1
/*filter byte*/
;
png_ptr
->
row_buf
=
temp
-
extra
-
1
/*filter byte*/
;
temp
=
png_ptr
->
big_prev_row
+
32
;
temp
=
png_ptr
->
big_prev_row
+
32
;
extra
=
(
int
)((
temp
-
(
png_bytep
)
0
)
&
0x0f
)
;
extra
=
(
size_t
)
temp
&
0x0f
;
png_ptr
->
prev_row
=
temp
-
extra
-
1
/*filter byte*/
;
png_ptr
->
prev_row
=
temp
-
extra
-
1
/*filter byte*/
;
}
}
#else
#else
/* Use 31 bytes of padding before and 17 bytes after row_buf. */
/* Use 31 bytes of padding before and 17 bytes after row_buf. */
png_ptr
->
row_buf
=
png_ptr
->
big_row_buf
+
31
;
png_ptr
->
row_buf
=
png_ptr
->
big_row_buf
+
31
;
...
...
libs/png/pngset.c
View file @
d4ce1fd7
/* pngset.c - storage of image information into info struct
/* pngset.c - storage of image information into info struct
*
*
* Copyright (c) 2018 Cosmin Truta
* Copyright (c) 2018
-2022
Cosmin Truta
* Copyright (c) 1998-2018 Glenn Randers-Pehrson
* Copyright (c) 1998-2018 Glenn Randers-Pehrson
* Copyright (c) 1996-1997 Andreas Dilger
* Copyright (c) 1996-1997 Andreas Dilger
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
...
@@ -1019,6 +1019,9 @@ png_set_tRNS(png_structrp png_ptr, png_inforp info_ptr,
...
@@ -1019,6 +1019,9 @@ png_set_tRNS(png_structrp png_ptr, png_inforp info_ptr,
info_ptr
->
trans_alpha
=
png_voidcast
(
png_bytep
,
info_ptr
->
trans_alpha
=
png_voidcast
(
png_bytep
,
png_malloc
(
png_ptr
,
PNG_MAX_PALETTE_LENGTH
));
png_malloc
(
png_ptr
,
PNG_MAX_PALETTE_LENGTH
));
memcpy
(
info_ptr
->
trans_alpha
,
trans_alpha
,
(
size_t
)
num_trans
);
memcpy
(
info_ptr
->
trans_alpha
,
trans_alpha
,
(
size_t
)
num_trans
);
info_ptr
->
valid
|=
PNG_INFO_tRNS
;
info_ptr
->
free_me
|=
PNG_FREE_TRNS
;
}
}
png_ptr
->
trans_alpha
=
info_ptr
->
trans_alpha
;
png_ptr
->
trans_alpha
=
info_ptr
->
trans_alpha
;
}
}
...
@@ -1326,7 +1329,7 @@ png_set_unknown_chunk_location(png_const_structrp png_ptr, png_inforp info_ptr,
...
@@ -1326,7 +1329,7 @@ png_set_unknown_chunk_location(png_const_structrp png_ptr, png_inforp info_ptr,
#ifdef PNG_MNG_FEATURES_SUPPORTED
#ifdef PNG_MNG_FEATURES_SUPPORTED
png_uint_32
PNGAPI
png_uint_32
PNGAPI
png_permit_mng_features
(
png_structrp
png_ptr
,
png_uint_32
mng_features
)
png_permit_mng_features
(
png_structrp
png_ptr
,
png_uint_32
mng_features
)
{
{
png_debug
(
1
,
"in png_permit_mng_features"
);
png_debug
(
1
,
"in png_permit_mng_features"
);
...
@@ -1633,7 +1636,7 @@ png_set_invalid(png_const_structrp png_ptr, png_inforp info_ptr, int mask)
...
@@ -1633,7 +1636,7 @@ png_set_invalid(png_const_structrp png_ptr, png_inforp info_ptr, int mask)
#ifdef PNG_SET_USER_LIMITS_SUPPORTED
#ifdef PNG_SET_USER_LIMITS_SUPPORTED
/* This function was added to libpng 1.2.6 */
/* This function was added to libpng 1.2.6 */
void
PNGAPI
void
PNGAPI
png_set_user_limits
(
png_structrp
png_ptr
,
png_uint_32
user_width_max
,
png_set_user_limits
(
png_structrp
png_ptr
,
png_uint_32
user_width_max
,
png_uint_32
user_height_max
)
png_uint_32
user_height_max
)
{
{
/* Images with dimensions larger than these limits will be
/* Images with dimensions larger than these limits will be
...
@@ -1649,7 +1652,7 @@ png_set_user_limits (png_structrp png_ptr, png_uint_32 user_width_max,
...
@@ -1649,7 +1652,7 @@ png_set_user_limits (png_structrp png_ptr, png_uint_32 user_width_max,
/* This function was added to libpng 1.4.0 */
/* This function was added to libpng 1.4.0 */
void
PNGAPI
void
PNGAPI
png_set_chunk_cache_max
(
png_structrp
png_ptr
,
png_uint_32
user_chunk_cache_max
)
png_set_chunk_cache_max
(
png_structrp
png_ptr
,
png_uint_32
user_chunk_cache_max
)
{
{
if
(
png_ptr
!=
NULL
)
if
(
png_ptr
!=
NULL
)
png_ptr
->
user_chunk_cache_max
=
user_chunk_cache_max
;
png_ptr
->
user_chunk_cache_max
=
user_chunk_cache_max
;
...
@@ -1657,7 +1660,7 @@ png_set_chunk_cache_max (png_structrp png_ptr, png_uint_32 user_chunk_cache_max)
...
@@ -1657,7 +1660,7 @@ png_set_chunk_cache_max (png_structrp png_ptr, png_uint_32 user_chunk_cache_max)
/* This function was added to libpng 1.4.1 */
/* This function was added to libpng 1.4.1 */
void
PNGAPI
void
PNGAPI
png_set_chunk_malloc_max
(
png_structrp
png_ptr
,
png_set_chunk_malloc_max
(
png_structrp
png_ptr
,
png_alloc_size_t
user_chunk_malloc_max
)
png_alloc_size_t
user_chunk_malloc_max
)
{
{
if
(
png_ptr
!=
NULL
)
if
(
png_ptr
!=
NULL
)
...
...
libs/png/pngstruct.h
View file @
d4ce1fd7
/* pngstruct.h - header file for PNG reference library
/* pngstruct.h - header file for PNG reference library
*
*
* Copyright (c) 2018-20
19
Cosmin Truta
* Copyright (c) 2018-20
22
Cosmin Truta
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
* Copyright (c) 1996-1997 Andreas Dilger
* Copyright (c) 1996-1997 Andreas Dilger
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
...
@@ -334,18 +334,8 @@ struct png_struct_def
...
@@ -334,18 +334,8 @@ struct png_struct_def
size_t
current_buffer_size
;
/* amount of data now in current_buffer */
size_t
current_buffer_size
;
/* amount of data now in current_buffer */
int
process_mode
;
/* what push library is currently doing */
int
process_mode
;
/* what push library is currently doing */
int
cur_palette
;
/* current push library palette index */
int
cur_palette
;
/* current push library palette index */
#endif
/* PROGRESSIVE_READ */
#endif
/* PROGRESSIVE_READ */
#if defined(__TURBOC__) && !defined(_Windows) && !defined(__FLAT__)
/* For the Borland special 64K segment handler */
png_bytepp
offset_table_ptr
;
png_bytep
offset_table
;
png_uint_16
offset_table_number
;
png_uint_16
offset_table_count
;
png_uint_16
offset_table_count_free
;
#endif
#ifdef PNG_READ_QUANTIZE_SUPPORTED
#ifdef PNG_READ_QUANTIZE_SUPPORTED
png_bytep
palette_lookup
;
/* lookup table for quantizing */
png_bytep
palette_lookup
;
/* lookup table for quantizing */
png_bytep
quantize_index
;
/* index translation for palette files */
png_bytep
quantize_index
;
/* index translation for palette files */
...
...
libs/png/pngwrite.c
View file @
d4ce1fd7
/* pngwrite.c - general routines to write a PNG file
/* pngwrite.c - general routines to write a PNG file
*
*
* Copyright (c) 2018-20
19
Cosmin Truta
* Copyright (c) 2018-20
22
Cosmin Truta
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
* Copyright (c) 1996-1997 Andreas Dilger
* Copyright (c) 1996-1997 Andreas Dilger
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
* Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.
...
@@ -489,6 +489,16 @@ png_convert_from_time_t(png_timep ptime, time_t ttime)
...
@@ -489,6 +489,16 @@ png_convert_from_time_t(png_timep ptime, time_t ttime)
png_debug
(
1
,
"in png_convert_from_time_t"
);
png_debug
(
1
,
"in png_convert_from_time_t"
);
tbuf
=
gmtime
(
&
ttime
);
tbuf
=
gmtime
(
&
ttime
);
if
(
tbuf
==
NULL
)
{
/* TODO: add a safe function which takes a png_ptr argument and raises
* a png_error if the ttime argument is invalid and the call to gmtime
* fails as a consequence.
*/
memset
(
ptime
,
0
,
sizeof
(
*
ptime
));
return
;
}
png_convert_from_struct_tm
(
ptime
,
tbuf
);
png_convert_from_struct_tm
(
ptime
,
tbuf
);
}
}
#endif
#endif
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment