com php-src: Fix Z_BLOCK breakage when built against zlib < 1.2.4: ext/zlib/tests/deflate_a dd_basic.phpt ext/zlib/tests/inflate_add_basic.phpt
ext/zlib/zlib.c
| From: | Daniel Lowrey | Date: | Thu, 07 May 2015 13:02:38 +0000 |
| Subject: | com php-src: Fix Z_BLOCK breakage when built against zlib < 1.2.4: ext/zlib/tests/deflate_a dd_basic.phpt ext/zlib/tests/inflate_add_basic.phpt ext/zlib/zlib.c |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-86642@lists.php.net to get a copy of this message | ||
Commit: 62b1293e3df520d104c678bc520b413386b628c5
Author: Daniel Lowrey <rdlowrey@php.net> Thu, 7 May 2015 09:02:30 -0400
Parents: fbd1f1f282466bd709081e104d65baf597aee666
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=62b1293e3df520d104c678bc520b413386b628c5
Log:
Fix Z_BLOCK breakage when built against zlib < 1.2.4
Changed paths:
M ext/zlib/tests/deflate_add_basic.phpt
M ext/zlib/tests/inflate_add_basic.phpt
M ext/zlib/zlib.c
Diff:
diff --git a/ext/zlib/tests/deflate_add_basic.phpt b/ext/zlib/tests/deflate_add_basic.phpt
index 9f48bb0..fde22b5 100644
--- a/ext/zlib/tests/deflate_add_basic.phpt
+++ b/ext/zlib/tests/deflate_add_basic.phpt
@@ -41,9 +41,13 @@ $flushTypes = [
'ZLIB_PARTIAL_FLUSH' => ZLIB_PARTIAL_FLUSH,
'ZLIB_FULL_FLUSH' => ZLIB_FULL_FLUSH,
'ZLIB_NO_FLUSH' => ZLIB_NO_FLUSH,
- 'ZLIB_BLOCK' => ZLIB_BLOCK,
];
+/* Z_BLOCK is only defined when built against zlib > 1.2.3 */
+if (defined(ZLIB_BLOCK)) {
+ $flushTypes['ZLIB_BLOCK'] = ZLIB_BLOCK;
+}
+
foreach ($modes as $modeKey => $mode) {
foreach ($flushSizes as $flushSize) {
foreach ($flushTypes as $flushTypeKey => $flushType) {
diff --git a/ext/zlib/tests/inflate_add_basic.phpt b/ext/zlib/tests/inflate_add_basic.phpt
index ff0458e..7ef5ef1 100644
--- a/ext/zlib/tests/inflate_add_basic.phpt
+++ b/ext/zlib/tests/inflate_add_basic.phpt
@@ -40,9 +40,13 @@ $flushTypes = [
'ZLIB_PARTIAL_FLUSH' => ZLIB_PARTIAL_FLUSH,
'ZLIB_FULL_FLUSH' => ZLIB_FULL_FLUSH,
'ZLIB_NO_FLUSH' => ZLIB_NO_FLUSH,
- 'ZLIB_BLOCK' => ZLIB_BLOCK,
];
+/* Z_BLOCK is only defined when built against zlib > 1.2..3 */
+if (defined(ZLIB_BLOCK)) {
+ $flushTypes['ZLIB_BLOCK'] = ZLIB_BLOCK;
+}
+
$uncompressed = "";
for ($i=0;$i<(32768*2);$i++) {
$uncompressed .= chr(rand(48,125));
diff --git a/ext/zlib/zlib.c b/ext/zlib/zlib.c
index 715fdaf..2b9c016 100644
--- a/ext/zlib/zlib.c
+++ b/ext/zlib/zlib.c
@@ -46,6 +46,13 @@
#undef gzseek
#undef gztell
+/* Z_BLOCK was added in zlib 1.2.4 and stable distros (RHEL6, at least) still
+ * package zlib 1.2.3
+ */
+#ifdef Z_BLOCK
+#define HAVE_Z_BLOCK 1
+#endif
+
int le_deflate;
int le_inflate;
@@ -814,7 +821,9 @@ PHP_FUNCTION(inflate_add)
case Z_PARTIAL_FLUSH:
case Z_SYNC_FLUSH:
case Z_FULL_FLUSH:
+#ifdef HAVE_Z_BLOCK
case Z_BLOCK:
+#endif
case Z_FINISH:
break;
@@ -960,7 +969,9 @@ PHP_FUNCTION(deflate_add)
case Z_PARTIAL_FLUSH:
case Z_SYNC_FLUSH:
case Z_FULL_FLUSH:
+#ifdef HAVE_Z_BLOCK
case Z_BLOCK:
+#endif
case Z_FINISH:
break;
@@ -1268,7 +1279,9 @@ static PHP_MINIT_FUNCTION(zlib)
REGISTER_LONG_CONSTANT("ZLIB_PARTIAL_FLUSH", Z_PARTIAL_FLUSH,
CONST_CS|CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("ZLIB_SYNC_FLUSH", Z_SYNC_FLUSH, CONST_CS|CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("ZLIB_FULL_FLUSH", Z_FULL_FLUSH, CONST_CS|CONST_PERSISTENT);
+#ifdef HAVE_Z_BLOCK
REGISTER_LONG_CONSTANT("ZLIB_BLOCK", Z_BLOCK, CONST_CS|CONST_PERSISTENT);
+#endif
REGISTER_LONG_CONSTANT("ZLIB_FINISH", Z_FINISH, CONST_CS|CONST_PERSISTENT);
REGISTER_INI_ENTRIES();
return SUCCESS;