diff options
-rw-r--r-- | ext/zlib/zlib.c | 140 | ||||
-rw-r--r-- | ext/zlib/zlib.stub.php | 131 | ||||
-rw-r--r-- | ext/zlib/zlib_arginfo.h | 116 |
3 files changed, 254 insertions, 133 deletions
diff --git a/ext/zlib/zlib.c b/ext/zlib/zlib.c index 1492cd45ca..8ccbcfee35 100644 --- a/ext/zlib/zlib.c +++ b/ext/zlib/zlib.c @@ -31,6 +31,7 @@ #include "ext/standard/file.h" #include "ext/standard/php_string.h" #include "php_zlib.h" +#include "zlib_arginfo.h" /* * zlib include files can define the following preprocessor defines which rename @@ -1252,147 +1253,20 @@ ZEND_TSRMLS_CACHE_DEFINE() ZEND_GET_MODULE(php_zlib) #endif -/* {{{ arginfo */ -ZEND_BEGIN_ARG_INFO_EX(arginfo_ob_gzhandler, 0, 0, 2) - ZEND_ARG_INFO(0, data) - ZEND_ARG_INFO(0, flags) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_zlib_get_coding_type, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_gzfile, 0, 0, 1) - ZEND_ARG_INFO(0, filename) - ZEND_ARG_INFO(0, use_include_path) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_gzopen, 0, 0, 2) - ZEND_ARG_INFO(0, filename) - ZEND_ARG_INFO(0, mode) - ZEND_ARG_INFO(0, use_include_path) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_readgzfile, 0, 0, 1) - ZEND_ARG_INFO(0, filename) - ZEND_ARG_INFO(0, use_include_path) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_zlib_encode, 0, 0, 2) - ZEND_ARG_INFO(0, data) - ZEND_ARG_INFO(0, encoding) - ZEND_ARG_INFO(0, level) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_zlib_decode, 0, 0, 1) - ZEND_ARG_INFO(0, data) - ZEND_ARG_INFO(0, max_decoded_len) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_gzdeflate, 0, 0, 1) - ZEND_ARG_INFO(0, data) - ZEND_ARG_INFO(0, level) - ZEND_ARG_INFO(0, encoding) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_gzencode, 0, 0, 1) - ZEND_ARG_INFO(0, data) - ZEND_ARG_INFO(0, level) - ZEND_ARG_INFO(0, encoding) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_gzcompress, 0, 0, 1) - ZEND_ARG_INFO(0, data) - ZEND_ARG_INFO(0, level) - ZEND_ARG_INFO(0, encoding) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_gzinflate, 0, 0, 1) - ZEND_ARG_INFO(0, data) - ZEND_ARG_INFO(0, max_decoded_len) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_gzdecode, 0, 0, 1) - ZEND_ARG_INFO(0, data) - ZEND_ARG_INFO(0, max_decoded_len) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_gzuncompress, 0, 0, 1) - ZEND_ARG_INFO(0, data) - ZEND_ARG_INFO(0, max_decoded_len) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_gzputs, 0, 0, 2) - ZEND_ARG_INFO(0, fp) - ZEND_ARG_INFO(0, str) - ZEND_ARG_INFO(0, length) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gzpassthru, 0) - ZEND_ARG_INFO(0, fp) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_gzseek, 0, 0, 2) - ZEND_ARG_INFO(0, fp) - ZEND_ARG_INFO(0, offset) - ZEND_ARG_INFO(0, whence) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gzread, 0) - ZEND_ARG_INFO(0, fp) - ZEND_ARG_INFO(0, length) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_gzgets, 0, 0, 1) - ZEND_ARG_INFO(0, fp) - ZEND_ARG_INFO(0, length) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_deflate_init, 0, 0, 1) - ZEND_ARG_INFO(0, encoding) - ZEND_ARG_INFO(0, level) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_deflate_add, 0, 0, 2) - ZEND_ARG_INFO(0, resource) - ZEND_ARG_INFO(0, add) - ZEND_ARG_INFO(0, flush_behavior) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_inflate_init, 0, 0, 1) - ZEND_ARG_INFO(0, encoding) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_inflate_add, 0, 0, 2) - ZEND_ARG_INFO(0, context) - ZEND_ARG_INFO(0, encoded_data) - ZEND_ARG_INFO(0, flush_mode) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_inflate_get_status, 0, 0, 1) - ZEND_ARG_INFO(0, resource) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_inflate_get_read_len, 0, 0, 1) - ZEND_ARG_INFO(0, resource) -ZEND_END_ARG_INFO() - -/* }}} */ - /* {{{ php_zlib_functions[] */ static const zend_function_entry php_zlib_functions[] = { PHP_FE(readgzfile, arginfo_readgzfile) - PHP_FALIAS(gzrewind, rewind, arginfo_gzpassthru) - PHP_FALIAS(gzclose, fclose, arginfo_gzpassthru) - PHP_FALIAS(gzeof, feof, arginfo_gzpassthru) - PHP_FALIAS(gzgetc, fgetc, arginfo_gzpassthru) + PHP_FALIAS(gzrewind, rewind, arginfo_gzrewind) + PHP_FALIAS(gzclose, fclose, arginfo_gzclose) + PHP_FALIAS(gzeof, feof, arginfo_gzeof) + PHP_FALIAS(gzgetc, fgetc, arginfo_gzgetc) PHP_FALIAS(gzgets, fgets, arginfo_gzgets) PHP_FALIAS(gzread, fread, arginfo_gzread) PHP_FE(gzopen, arginfo_gzopen) PHP_FALIAS(gzpassthru, fpassthru, arginfo_gzpassthru) PHP_FALIAS(gzseek, fseek, arginfo_gzseek) - PHP_FALIAS(gztell, ftell, arginfo_gzpassthru) - PHP_FALIAS(gzwrite, fwrite, arginfo_gzputs) + PHP_FALIAS(gztell, ftell, arginfo_gztell) + PHP_FALIAS(gzwrite, fwrite, arginfo_gzwrite) PHP_FALIAS(gzputs, fwrite, arginfo_gzputs) PHP_FE(gzfile, arginfo_gzfile) PHP_FE(gzcompress, arginfo_gzcompress) diff --git a/ext/zlib/zlib.stub.php b/ext/zlib/zlib.stub.php new file mode 100644 index 0000000000..9b3fb04be4 --- /dev/null +++ b/ext/zlib/zlib.stub.php @@ -0,0 +1,131 @@ +<?php + +/** @return string|false */ +function ob_gzhandler(string $data, int $flags) {} + +/** @return string|false */ +function zlib_get_coding_type() {} + +/** @return array|false */ +function gzfile(string $filename, int $use_include_path = 0) {} + +/** @return resource|false */ +function gzopen(string $filename, string $mode, int $use_include_path = 0) {} + +/** @return int|false */ +function readgzfile(string $filename, int $use_include_path = 0) {} + +/** @return string|false */ +function zlib_encode(string $data, int $encoding, int $level = -1) {} + +/** @return string|false */ +function zlib_decode(string $data, int $max_decoded_len = 0) {} + +/** @return string|false */ +function gzdeflate(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_RAW) {} + +/** @return string|false */ +function gzencode(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_GZIP) {} + +/** @return string|false */ +function gzcompress(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_DEFLATE) {} + +/** @return string|false */ +function gzinflate(string $data, int $max_decoded_len = 0) {} + +/** @return string|false */ +function gzdecode(string $data, int $max_decoded_len = 0) {} + +/** @return string|false */ +function gzuncompress(string $data, int $max_decoded_len = 0) {} + +/** + * @param resource $fp + * + * @return int|false + */ +function gzwrite($fp, string $str, int $length = UNKNOWN) {}; + +/** + * @param resource $fp + * + * @return int|false + */ +function gzputs($fp, string $str, int $length = UNKNOWN) {}; + +/** @param resource $fp */ +function gzrewind($fp): bool {}; + +/** @param resource $fp */ +function gzclose($fp): bool {}; + +/** @param resource $fp */ +function gzeof($fp): bool {}; + +/** + * @param resource $fp + * + * @return string|false + */ +function gzgetc($fp) {}; + +/** @param resource $fp */ +function gzpassthru($fp): int {}; + +/** @param resource $fp */ +function gzseek($fp, int $offset, int $whence = SEEK_SET): int {}; + +/** + * @param resource $fp + * + * @return int|false + */ +function gztell($fp) {}; + +/** + * @param resource $fp + * + * @return string|false + */ +function gzread($fp, int $length) {}; + +/** + * @param resource $fp + * + * @return string|false + */ +function gzgets($fp, int $length = 1024) {}; + +/** @return resource|false */ +function deflate_init(int $encoding, array $options = []) {}; + +/** + * @param resource $resource + * + * @return string|false + */ +function deflate_add($resource, string $add, int $flush_behavior = ZLIB_SYNC_FLUSH) {}; + +/** @return resource|false */ +function inflate_init(int $encoding, array $options = []) {}; + +/** + * @param resource $context + * + * @return string|false + */ +function inflate_add($context, string $encoded_data, int $flush_mode = ZLIB_SYNC_FLUSH) {}; + +/** + * @param resource $resource + * + * @return int|false + */ +function inflate_get_status($resource) {}; + +/** + * @param resource $resource + * + * @return int|false + */ +function inflate_get_read_len($resource) {}; diff --git a/ext/zlib/zlib_arginfo.h b/ext/zlib/zlib_arginfo.h new file mode 100644 index 0000000000..46b9e74608 --- /dev/null +++ b/ext/zlib/zlib_arginfo.h @@ -0,0 +1,116 @@ +/* This is a generated file, edit the .stub.php file instead. */ + +ZEND_BEGIN_ARG_INFO_EX(arginfo_ob_gzhandler, 0, 0, 2) + ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, flags, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_zlib_get_coding_type, 0, 0, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_gzfile, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, use_include_path, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_gzopen, 0, 0, 2) + ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, mode, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, use_include_path, IS_LONG, 0) +ZEND_END_ARG_INFO() + +#define arginfo_readgzfile arginfo_gzfile + +ZEND_BEGIN_ARG_INFO_EX(arginfo_zlib_encode, 0, 0, 2) + ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, encoding, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, level, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_zlib_decode, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, max_decoded_len, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_gzdeflate, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, level, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, encoding, IS_LONG, 0) +ZEND_END_ARG_INFO() + +#define arginfo_gzencode arginfo_gzdeflate + +#define arginfo_gzcompress arginfo_gzdeflate + +#define arginfo_gzinflate arginfo_zlib_decode + +#define arginfo_gzdecode arginfo_zlib_decode + +#define arginfo_gzuncompress arginfo_zlib_decode + +ZEND_BEGIN_ARG_INFO_EX(arginfo_gzwrite, 0, 0, 2) + ZEND_ARG_INFO(0, fp) + ZEND_ARG_TYPE_INFO(0, str, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0) +ZEND_END_ARG_INFO() + +#define arginfo_gzputs arginfo_gzwrite + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gzrewind, 0, 1, _IS_BOOL, 0) + ZEND_ARG_INFO(0, fp) +ZEND_END_ARG_INFO() + +#define arginfo_gzclose arginfo_gzrewind + +#define arginfo_gzeof arginfo_gzrewind + +ZEND_BEGIN_ARG_INFO_EX(arginfo_gzgetc, 0, 0, 1) + ZEND_ARG_INFO(0, fp) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gzpassthru, 0, 1, IS_LONG, 0) + ZEND_ARG_INFO(0, fp) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gzseek, 0, 2, IS_LONG, 0) + ZEND_ARG_INFO(0, fp) + ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, whence, IS_LONG, 0) +ZEND_END_ARG_INFO() + +#define arginfo_gztell arginfo_gzgetc + +ZEND_BEGIN_ARG_INFO_EX(arginfo_gzread, 0, 0, 2) + ZEND_ARG_INFO(0, fp) + ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_gzgets, 0, 0, 1) + ZEND_ARG_INFO(0, fp) + ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_deflate_init, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, encoding, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, options, IS_ARRAY, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_deflate_add, 0, 0, 2) + ZEND_ARG_INFO(0, resource) + ZEND_ARG_TYPE_INFO(0, add, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, flush_behavior, IS_LONG, 0) +ZEND_END_ARG_INFO() + +#define arginfo_inflate_init arginfo_deflate_init + +ZEND_BEGIN_ARG_INFO_EX(arginfo_inflate_add, 0, 0, 2) + ZEND_ARG_INFO(0, context) + ZEND_ARG_TYPE_INFO(0, encoded_data, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, flush_mode, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_inflate_get_status, 0, 0, 1) + ZEND_ARG_INFO(0, resource) +ZEND_END_ARG_INFO() + +#define arginfo_inflate_get_read_len arginfo_inflate_get_status |