From: Mark Adler Date: Wed, 19 Oct 2011 06:05:37 +0000 (-0700) Subject: Add #define ZLIB_CONST option to use const in the z_stream interface. X-Git-Tag: upstream/1.2.8~218 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5ab9f47745fe9353291b217f705086b6070575d5;p=platform%2Fupstream%2Fzlib.git Add #define ZLIB_CONST option to use const in the z_stream interface. This permits compilers to check for the proper treatment of next_in and msg in the z_stream structure. This is an option instead of the default in order to preserve backward compatibility. Some applications make use of the z_stream structure outside of zlib, and perform operations such as free(strm->next_in), which would not be permitted when next_in is const. The #define ZLIB_CONST needs to precede the #include "zlib.h">, in order to make next_in and msg const pointers in the z_stream type. --- diff --git a/zconf.h b/zconf.h index df7ff61..fd10c6a 100644 --- a/zconf.h +++ b/zconf.h @@ -214,6 +214,12 @@ # endif #endif +#if defined(ZLIB_CONST) && !defined(z_const) +# define z_const const +#else +# define z_const +#endif + /* Some Mac compilers merge all .h files incorrectly: */ #if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) # define NO_DUMMY_DECL diff --git a/zconf.h.cmakein b/zconf.h.cmakein index 8450547..0b880ad 100644 --- a/zconf.h.cmakein +++ b/zconf.h.cmakein @@ -216,6 +216,12 @@ # endif #endif +#if defined(ZLIB_CONST) && !defined(z_const) +# define z_const const +#else +# define z_const +#endif + /* Some Mac compilers merge all .h files incorrectly: */ #if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) # define NO_DUMMY_DECL diff --git a/zconf.h.in b/zconf.h.in index df7ff61..fd10c6a 100644 --- a/zconf.h.in +++ b/zconf.h.in @@ -214,6 +214,12 @@ # endif #endif +#if defined(ZLIB_CONST) && !defined(z_const) +# define z_const const +#else +# define z_const +#endif + /* Some Mac compilers merge all .h files incorrectly: */ #if defined(__MWERKS__)||defined(applec)||defined(THINK_C)||defined(__SC__) # define NO_DUMMY_DECL diff --git a/zlib.h b/zlib.h index 99cd058..14a925b 100644 --- a/zlib.h +++ b/zlib.h @@ -83,7 +83,7 @@ typedef void (*free_func) OF((voidpf opaque, voidpf address)); struct internal_state; typedef struct z_stream_s { - Bytef *next_in; /* next input byte */ + z_const Bytef *next_in; /* next input byte */ uInt avail_in; /* number of bytes available at next_in */ uLong total_in; /* total number of input bytes read so far */ @@ -91,7 +91,7 @@ typedef struct z_stream_s { uInt avail_out; /* remaining free space at next_out */ uLong total_out; /* total number of bytes output so far */ - char *msg; /* last error message, NULL if no error */ + z_const char *msg; /* last error message, NULL if no error */ struct internal_state FAR *state; /* not visible by applications */ alloc_func zalloc; /* used to allocate the internal state */