mirror of
https://github.com/php/pecl-file_formats-lzf.git
synced 2026-03-23 22:52:07 +01:00
drop support of PHP < 7.2
This commit is contained in:
46
filter.c
46
filter.c
@@ -1,8 +1,6 @@
|
||||
/*
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5, 7, 8 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2020 The PHP Group |
|
||||
| Copyright (c) The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.01 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -72,7 +70,7 @@ static int php_lzf_filter_state_ctor(php_lzf_filter_state *inst, int persistent)
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static void php_lzf_filter_state_dtor(php_lzf_filter_state *inst TSRMLS_DC)
|
||||
static void php_lzf_filter_state_dtor(php_lzf_filter_state *inst)
|
||||
{
|
||||
pefree(inst->buffer, inst->persistent);
|
||||
}
|
||||
@@ -82,7 +80,7 @@ static int lzf_compress_filter_append_bucket(
|
||||
php_stream_filter_status_t *exit_status,
|
||||
php_lzf_filter_state *inst,
|
||||
php_stream_bucket_brigade *buckets_out,
|
||||
int persistent TSRMLS_DC)
|
||||
int persistent)
|
||||
{
|
||||
int status;
|
||||
size_t buffer_size;
|
||||
@@ -115,11 +113,11 @@ static int lzf_compress_filter_append_bucket(
|
||||
}
|
||||
|
||||
/* Create new bucket and append it */
|
||||
new_bucket = php_stream_bucket_new(stream, output_buffer, buffer_size, 1, 0 TSRMLS_CC);
|
||||
new_bucket = php_stream_bucket_new(stream, output_buffer, buffer_size, 1, 0);
|
||||
if (!new_bucket)
|
||||
goto fail_free_buffer;
|
||||
|
||||
php_stream_bucket_append(buckets_out, new_bucket TSRMLS_CC);
|
||||
php_stream_bucket_append(buckets_out, new_bucket);
|
||||
|
||||
/* Clear our buffer */
|
||||
inst->buffer_pos = 0;
|
||||
@@ -143,7 +141,7 @@ static int lzf_compress_append_data(
|
||||
const char *input_buffer,
|
||||
size_t input_buffer_len,
|
||||
size_t *consumed,
|
||||
int persistent TSRMLS_DC)
|
||||
int persistent)
|
||||
{
|
||||
size_t free_buffer;
|
||||
size_t bytes_to_copy;
|
||||
@@ -162,7 +160,7 @@ static int lzf_compress_append_data(
|
||||
|
||||
/* If the buffer is full, we need to flush it */
|
||||
if (inst->buffer_pos == LZF_BLOCKSIZE) {
|
||||
if (lzf_compress_filter_append_bucket(stream, exit_status, inst, buckets_out, persistent TSRMLS_CC) != SUCCESS)
|
||||
if (lzf_compress_filter_append_bucket(stream, exit_status, inst, buckets_out, persistent) != SUCCESS)
|
||||
return FAILURE;
|
||||
}
|
||||
}
|
||||
@@ -176,7 +174,7 @@ static php_stream_filter_status_t lzf_compress_filter(
|
||||
php_stream_bucket_brigade *buckets_in,
|
||||
php_stream_bucket_brigade *buckets_out,
|
||||
size_t *bytes_consumed,
|
||||
int flags TSRMLS_DC)
|
||||
int flags)
|
||||
{
|
||||
size_t consumed = 0;
|
||||
php_lzf_filter_state *inst = (php_lzf_filter_state *) Z_PTR(thisfilter->abstract);
|
||||
@@ -186,20 +184,20 @@ static php_stream_filter_status_t lzf_compress_filter(
|
||||
while (buckets_in->head) {
|
||||
bucket = buckets_in->head;
|
||||
|
||||
php_stream_bucket_unlink(bucket TSRMLS_CC);
|
||||
php_stream_bucket_unlink(bucket);
|
||||
|
||||
if (lzf_compress_append_data(stream, &exit_status, buckets_out, inst, bucket->buf, bucket->buflen, &consumed,
|
||||
php_stream_is_persistent(stream) TSRMLS_CC) != SUCCESS)
|
||||
php_stream_is_persistent(stream)) != SUCCESS)
|
||||
goto fail_free_bucket;
|
||||
|
||||
php_stream_bucket_delref(bucket TSRMLS_CC);
|
||||
php_stream_bucket_delref(bucket);
|
||||
}
|
||||
|
||||
if (bytes_consumed)
|
||||
*bytes_consumed = consumed;
|
||||
|
||||
if (flags & PSFS_FLAG_FLUSH_CLOSE) {
|
||||
if (lzf_compress_filter_append_bucket(stream, &exit_status, inst, buckets_out, php_stream_is_persistent(stream) TSRMLS_CC) != SUCCESS)
|
||||
if (lzf_compress_filter_append_bucket(stream, &exit_status, inst, buckets_out, php_stream_is_persistent(stream)) != SUCCESS)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
@@ -207,7 +205,7 @@ static php_stream_filter_status_t lzf_compress_filter(
|
||||
|
||||
fail_free_bucket:
|
||||
if (bucket != NULL)
|
||||
php_stream_bucket_delref(bucket TSRMLS_CC);
|
||||
php_stream_bucket_delref(bucket);
|
||||
fail:
|
||||
return PSFS_ERR_FATAL;
|
||||
}
|
||||
@@ -218,12 +216,12 @@ static php_stream_filter_status_t lzf_decompress_filter(
|
||||
php_stream_bucket_brigade *buckets_in,
|
||||
php_stream_bucket_brigade *buckets_out,
|
||||
size_t *bytes_consumed,
|
||||
int flags TSRMLS_DC)
|
||||
int flags)
|
||||
{
|
||||
return PSFS_PASS_ON;
|
||||
}
|
||||
|
||||
static void lzf_filter_state_dtor(php_stream_filter *thisfilter TSRMLS_DC)
|
||||
static void lzf_filter_state_dtor(php_stream_filter *thisfilter)
|
||||
{
|
||||
#if PHP_MAJOR_VERSION < 7
|
||||
assert(thisfilter->abstract != NULL);
|
||||
@@ -231,7 +229,7 @@ static void lzf_filter_state_dtor(php_stream_filter *thisfilter TSRMLS_DC)
|
||||
assert(Z_PTR(thisfilter->abstract) != NULL);
|
||||
#endif
|
||||
|
||||
php_lzf_filter_state_dtor((php_lzf_filter_state *) Z_PTR(thisfilter->abstract) TSRMLS_CC);
|
||||
php_lzf_filter_state_dtor((php_lzf_filter_state *) Z_PTR(thisfilter->abstract));
|
||||
pefree(Z_PTR(thisfilter->abstract), ((php_lzf_filter_state *) Z_PTR(thisfilter->abstract))->persistent);
|
||||
}
|
||||
|
||||
@@ -247,11 +245,7 @@ static php_stream_filter_ops lzf_decompress_ops = {
|
||||
"lzf.decompress"
|
||||
};
|
||||
|
||||
#if PHP_VERSION_ID < 70200
|
||||
static php_stream_filter *lzf_compress_filter_create(const char *filtername, zval *filterparams, int persistent TSRMLS_DC)
|
||||
#else
|
||||
static php_stream_filter *lzf_compress_filter_create(const char *filtername, zval *filterparams, uint8_t persistent TSRMLS_DC)
|
||||
#endif
|
||||
static php_stream_filter *lzf_compress_filter_create(const char *filtername, zval *filterparams, uint8_t persistent)
|
||||
{
|
||||
php_lzf_filter_state *inst;
|
||||
|
||||
@@ -267,11 +261,7 @@ static php_stream_filter *lzf_compress_filter_create(const char *filtername, zva
|
||||
return php_stream_filter_alloc(&lzf_compress_ops, inst, persistent);
|
||||
}
|
||||
|
||||
#if PHP_VERSION_ID < 70200
|
||||
static php_stream_filter *lzf_decompress_filter_create(const char *filtername, zval *filterparams, int persistent TSRMLS_DC)
|
||||
#else
|
||||
static php_stream_filter *lzf_decompress_filter_create(const char *filtername, zval *filterparams, uint8_t persistent TSRMLS_DC)
|
||||
#endif
|
||||
static php_stream_filter *lzf_decompress_filter_create(const char *filtername, zval *filterparams, uint8_t persistent)
|
||||
{
|
||||
php_lzf_filter_state *inst;
|
||||
|
||||
|
||||
39
lzf.c
39
lzf.c
@@ -1,8 +1,6 @@
|
||||
/*
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5, 7, 8 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2020 The PHP Group |
|
||||
| Copyright (c) The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.01 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -32,6 +30,7 @@
|
||||
#endif
|
||||
|
||||
#if PHP_VERSION_ID < 80000
|
||||
#define RETURN_THROWS() return
|
||||
#include "lzf_legacy_arginfo.h"
|
||||
#else
|
||||
#include "lzf_arginfo.h"
|
||||
@@ -40,9 +39,7 @@
|
||||
/* {{{ lzf_module_entry
|
||||
*/
|
||||
zend_module_entry lzf_module_entry = {
|
||||
#if ZEND_MODULE_API_NO >= 20010901
|
||||
STANDARD_MODULE_HEADER,
|
||||
#endif
|
||||
"lzf",
|
||||
ext_functions,
|
||||
PHP_MINIT(lzf),
|
||||
@@ -50,9 +47,7 @@ zend_module_entry lzf_module_entry = {
|
||||
NULL,
|
||||
NULL,
|
||||
PHP_MINFO(lzf),
|
||||
#if ZEND_MODULE_API_NO >= 20010901
|
||||
PHP_LZF_VERSION,
|
||||
#endif
|
||||
STANDARD_MODULE_PROPERTIES
|
||||
};
|
||||
/* }}} */
|
||||
@@ -65,8 +60,8 @@ ZEND_GET_MODULE(lzf)
|
||||
*/
|
||||
PHP_MINIT_FUNCTION(lzf)
|
||||
{
|
||||
php_stream_filter_register_factory("lzf.compress", &php_lzf_compress_filter_factory TSRMLS_CC);
|
||||
php_stream_filter_register_factory("lzf.decompress", &php_lzf_decompress_filter_factory TSRMLS_CC);
|
||||
php_stream_filter_register_factory("lzf.compress", &php_lzf_compress_filter_factory);
|
||||
php_stream_filter_register_factory("lzf.decompress", &php_lzf_decompress_filter_factory);
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
@@ -76,8 +71,8 @@ PHP_MINIT_FUNCTION(lzf)
|
||||
*/
|
||||
PHP_MSHUTDOWN_FUNCTION(lzf)
|
||||
{
|
||||
php_stream_filter_unregister_factory("lzf.compress" TSRMLS_CC);
|
||||
php_stream_filter_unregister_factory("lzf.decompress" TSRMLS_CC);
|
||||
php_stream_filter_unregister_factory("lzf.compress");
|
||||
php_stream_filter_unregister_factory("lzf.decompress");
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
@@ -110,11 +105,11 @@ Return a string compressed with LZF */
|
||||
PHP_FUNCTION(lzf_compress)
|
||||
{
|
||||
char *retval, *arg = NULL;
|
||||
strsize_t arg_len, out_len, result;
|
||||
size_t arg_len, out_len, result;
|
||||
|
||||
|
||||
if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
|
||||
WRONG_PARAM_COUNT;
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &arg, &arg_len) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
if (arg_len > UINT_MAX) { /* LZF library do not support support large strings */
|
||||
@@ -135,7 +130,7 @@ PHP_FUNCTION(lzf_compress)
|
||||
|
||||
retval[result] = 0;
|
||||
|
||||
_RETVAL_STRINGL(retval, result);
|
||||
RETVAL_STRINGL(retval, result);
|
||||
efree(retval);
|
||||
}
|
||||
/* }}} */
|
||||
@@ -145,12 +140,12 @@ Return a string decompressed with LZF */
|
||||
PHP_FUNCTION(lzf_decompress)
|
||||
{
|
||||
char *arg = NULL;
|
||||
strsize_t arg_len, result;
|
||||
size_t arg_len, result;
|
||||
char *buffer;
|
||||
size_t buffer_size = 0;
|
||||
|
||||
if (ZEND_NUM_ARGS() != 1 || zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
|
||||
WRONG_PARAM_COUNT;
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &arg, &arg_len) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
do {
|
||||
@@ -168,7 +163,7 @@ PHP_FUNCTION(lzf_decompress)
|
||||
|
||||
if (result == 0) {
|
||||
if (errno == EINVAL) {
|
||||
php_error(E_WARNING, "%s LZF decompression failed, compressed data corrupted", get_active_function_name(TSRMLS_C));
|
||||
php_error(E_WARNING, "%s LZF decompression failed, compressed data corrupted", get_active_function_name());
|
||||
}
|
||||
|
||||
efree(buffer);
|
||||
@@ -177,7 +172,7 @@ PHP_FUNCTION(lzf_decompress)
|
||||
|
||||
buffer[result] = 0;
|
||||
|
||||
_RETVAL_STRINGL(buffer, result);
|
||||
RETVAL_STRINGL(buffer, result);
|
||||
efree(buffer);
|
||||
}
|
||||
/* }}} */
|
||||
@@ -186,6 +181,10 @@ PHP_FUNCTION(lzf_decompress)
|
||||
Return 1 if lzf was optimized for speed, 0 for compression */
|
||||
PHP_FUNCTION(lzf_optimized_for)
|
||||
{
|
||||
if (zend_parse_parameters_none() == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
#ifdef HAVE_LIBLZF
|
||||
RETURN_FALSE;
|
||||
#else
|
||||
|
||||
@@ -31,7 +31,8 @@ http://pear.php.net/dtd/package-2.0.xsd">
|
||||
</stability>
|
||||
<license uri="http://www.php.net/license">PHP License</license>
|
||||
<notes>
|
||||
-
|
||||
- drop support for PHP 7.1 and older
|
||||
- add type hinting
|
||||
</notes>
|
||||
<contents>
|
||||
<dir name="/">
|
||||
@@ -71,10 +72,10 @@ http://pear.php.net/dtd/package-2.0.xsd">
|
||||
<dependencies>
|
||||
<required>
|
||||
<php>
|
||||
<min>4.0.0</min>
|
||||
<min>7.2.0</min>
|
||||
</php>
|
||||
<pearinstaller>
|
||||
<min>1.4.0b1</min>
|
||||
<min>1.10</min>
|
||||
</pearinstaller>
|
||||
</required>
|
||||
</dependencies>
|
||||
|
||||
31
php_lzf.h
31
php_lzf.h
@@ -1,8 +1,6 @@
|
||||
/*
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5, 7, 8 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2020 The PHP Group |
|
||||
| Copyright (c) The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.01 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -27,39 +25,12 @@ extern php_stream_filter_factory php_lzf_decompress_filter_factory;
|
||||
|
||||
#define PHP_LZF_VERSION "1.7.0-dev"
|
||||
|
||||
#ifdef PHP_WIN32
|
||||
#define PHP_LZF_API __declspec(dllexport)
|
||||
#else
|
||||
#define PHP_LZF_API
|
||||
#endif
|
||||
|
||||
#ifdef ZTS
|
||||
#include "TSRM.h"
|
||||
#endif
|
||||
|
||||
#define LZF_MARGIN 128
|
||||
|
||||
PHP_MINFO_FUNCTION(lzf);
|
||||
PHP_MINIT_FUNCTION(lzf);
|
||||
PHP_MSHUTDOWN_FUNCTION(lzf);
|
||||
|
||||
PHP_FUNCTION(lzf_compress);
|
||||
PHP_FUNCTION(lzf_decompress);
|
||||
PHP_FUNCTION(lzf_optimized_for);
|
||||
|
||||
#if PHP_MAJOR_VERSION < 7
|
||||
typedef long zend_long;
|
||||
typedef int strsize_t;
|
||||
#define _RETVAL_STRINGL(a,l) RETVAL_STRINGL(a,l,1)
|
||||
#define Z_PTR(p) (p)
|
||||
#else
|
||||
typedef size_t strsize_t;
|
||||
#define TSRMLS_C
|
||||
#define TSRMLS_CC
|
||||
#define TSRMLS_DC
|
||||
#define _RETVAL_STRINGL(a,l) RETVAL_STRINGL(a,l)
|
||||
#endif
|
||||
|
||||
#endif /* PHP_LZF_H */
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user