diff options
author | Glenn Randers-Pehrson <glennrp at users.sourceforge.net> | 2009-08-29 14:30:36 -0500 |
---|---|---|
committer | Glenn Randers-Pehrson <glennrp at users.sourceforge.net> | 2009-08-29 14:30:36 -0500 |
commit | 10ee432860c7da3dfc0867a07b7bdeb264c2faa0 (patch) | |
tree | 05c51e27c497188da7a0afce51e083dda2690e75 | |
parent | 194ca9e7bbb1df6dd54d0ffd183db869b5b732ac (diff) | |
download | libpng-10ee432860c7da3dfc0867a07b7bdeb264c2faa0.tar.gz |
[devel] Optionally use a loop instead of memset() to initialize memory.
To try this, configure libpng using PNG_USE_MEMSET_LOOP. Initial testing
with pngcrush was not promising, although it does save a hundred bytes or
so of executable size.
-rw-r--r-- | ANNOUNCE | 6 | ||||
-rw-r--r-- | CHANGES | 4 | ||||
-rw-r--r-- | pngconf.h | 27 |
3 files changed, 32 insertions, 5 deletions
@@ -1,5 +1,5 @@ -Libpng 1.4.0beta78 - August 28, 2009 +Libpng 1.4.0beta78 - August 29, 2009 This is not intended to be a public release. It will be replaced within a few weeks by a public version or by another test version. @@ -534,7 +534,9 @@ version 1.4.0beta77 [August 27, 2009] Moved CMakeLists.txt from scripts into the main libpng directory. Various bugfixes and improvements to CMakeLists.txt (Philip Lowman) -version 1.4.0beta78 [August 28, 2009] +version 1.4.0beta78 [August 29, 2009] + Added abililty to configure libpng to use a loop instead of memset(), + using PNG_USE_MEMSET_LOOP. version 1.4.0betaN [future] Build shared libraries with -lz and sometimes -lm. @@ -2220,7 +2220,9 @@ version 1.4.0beta77 [August 27, 2009] Moved CMakeLists.txt from scripts into the main libpng directory. Various bugfixes and improvements to CMakeLists.txt (Philip Lowman) -version 1.4.0beta78 [August 28, 2009] +version 1.4.0beta78 [August 29, 2009] + Added abililty to configure libpng to use a loop instead of memset(), + using PNG_USE_MEMSET_LOOP. version 1.4.0betaN [future] Build shared libraries with -lz and sometimes -lm. @@ -1,7 +1,7 @@ /* pngconf.h - machine configurable file for libpng * - * libpng version 1.4.0beta78 - August 28, 2009 + * libpng version 1.4.0beta78 - August 29, 2009 * For conditions of distribution and use, see copyright notice in png.h * Copyright (c) 1998-2009 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) @@ -698,6 +698,13 @@ #define PNG_STRING_NEWLINE "\n" #endif +/* Added at libpng-1.4.0 */ +#if !defined(PNG_NO_USE_SYSTEM_MEMSET) || defined(PNG_USE_MEMSET_LOOP) +# ifndef PNG_USE_SYSTEM_MEMSET +# define PNG_USE_SYSTEM_MEMSET +# endif +#endif + /* These are currently experimental features, define them if you want */ /* very little testing */ @@ -1323,6 +1330,16 @@ typedef char FAR * FAR * FAR * png_charppp; # endif #endif +/* Added at libpng-1.4.0 */ +#ifndef PNG_USE_SYSTEM_MEMSET +# define png_memset(array,value,num) \ + { \ + int ipng_memset; \ + for (ipng_memset=0; ipng_memset<(num); ++ipng_memset) \ + ((png_bytep)array)[ipng_memset] = (value); \ + } +#endif + #if defined(USE_FAR_KEYWORD) /* use this to make far-to-near assignments */ # define CHECK 1 @@ -1334,7 +1351,9 @@ typedef char FAR * FAR * FAR * png_charppp; # define png_strlen _fstrlen # define png_memcmp _fmemcmp /* SJT: added */ # define png_memcpy _fmemcpy -# define png_memset _fmemset +# ifndef png_memset +# define png_memset _fmemset +# endif # define png_sprintf sprintf #else # if defined(_WINDOWS_) /* favor Windows over C runtime fns */ @@ -1345,7 +1364,9 @@ typedef char FAR * FAR * FAR * png_charppp; # define png_strlen lstrlenA # define png_memcmp memcmp # define png_memcpy CopyMemory +# ifndef png_memset # define png_memset memset +# endif # define png_sprintf wsprintfA # else # define CVT_PTR(ptr) (ptr) @@ -1355,7 +1376,9 @@ typedef char FAR * FAR * FAR * png_charppp; # define png_strlen strlen # define png_memcmp memcmp /* SJT: added */ # define png_memcpy memcpy +# ifndef png_memset # define png_memset memset +# endif # define png_sprintf sprintf # ifndef PNG_NO_SNPRINTF # ifdef _MSC_VER |