summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Randers-Pehrson <glennrp at users.sourceforge.net>2009-08-29 14:30:36 -0500
committerGlenn Randers-Pehrson <glennrp at users.sourceforge.net>2009-08-29 14:30:36 -0500
commit10ee432860c7da3dfc0867a07b7bdeb264c2faa0 (patch)
tree05c51e27c497188da7a0afce51e083dda2690e75
parent194ca9e7bbb1df6dd54d0ffd183db869b5b732ac (diff)
downloadlibpng-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--ANNOUNCE6
-rw-r--r--CHANGES4
-rw-r--r--pngconf.h27
3 files changed, 32 insertions, 5 deletions
diff --git a/ANNOUNCE b/ANNOUNCE
index f351b5938..cfe99c144 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -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.
diff --git a/CHANGES b/CHANGES
index 2780fe686..e4549f165 100644
--- a/CHANGES
+++ b/CHANGES
@@ -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.
diff --git a/pngconf.h b/pngconf.h
index 14c880097..1dc9b6c8d 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -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