From b11cf212778abb4d763f604f6f47a452afd3184c Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Thu, 7 Oct 2021 11:12:48 +0200 Subject: update to 5.1.21 --- apcu-php81.patch | 494 ------------------------------------------------------- 1 file changed, 494 deletions(-) delete mode 100644 apcu-php81.patch (limited to 'apcu-php81.patch') diff --git a/apcu-php81.patch b/apcu-php81.patch deleted file mode 100644 index 63ce162..0000000 --- a/apcu-php81.patch +++ /dev/null @@ -1,494 +0,0 @@ -From 3d96f1aaf6e1eae26dd637a4795f8fee95b79c02 Mon Sep 17 00:00:00 2001 -From: Nikita Popov -Date: Thu, 10 Jun 2021 10:48:12 +0200 -Subject: [PATCH] Fix tests for PHP 8.1 - ---- - tests/apc_003b.phpt | 15 ++--- - tests/apc_003b_legacy.phpt | 113 +++++++++++++++++++++++++++++++++++++ - tests/apc_006_php73.phpt | 1 + - tests/apc_006_php81.phpt | 83 +++++++++++++++++++++++++++ - tests/bug76145.phpt | 1 + - 5 files changed, 206 insertions(+), 7 deletions(-) - create mode 100644 tests/apc_003b_legacy.phpt - create mode 100644 tests/apc_006_php81.phpt - -diff --git a/tests/apc_003b.phpt b/tests/apc_003b.phpt -index 18b0d20..d7a18cc 100644 ---- a/tests/apc_003b.phpt -+++ b/tests/apc_003b.phpt -@@ -2,7 +2,8 @@ - APC: apcu_store/fetch with objects - --SKIPIF-- - = 8.1"); - ?> - --INI-- - apc.enabled=1 -@@ -68,42 +69,42 @@ object(foo)#%d (1) { - bool(true) - } - object(baz)#%d (6) { -- ["pri":"baz":private]=> -- string(3) "baz" - ["pub"]=> - string(3) "bar" - ["pro":protected]=> - string(3) "bar" - ["pri":"bar":private]=> - string(3) "bar" -+ ["pri":"baz":private]=> -+ string(3) "baz" - ["bar"]=> - bool(true) - ["baz"]=> - bool(true) - } - object(baz)#%d (6) { -- ["pri":"baz":private]=> -- string(3) "baz" - ["pub"]=> - string(3) "bar" - ["pro":protected]=> - string(3) "bar" - ["pri":"bar":private]=> - string(3) "mod" -+ ["pri":"baz":private]=> -+ string(3) "baz" - ["bar"]=> - bool(true) - ["baz"]=> - bool(true) - } - object(baz)#%d (6) { -- ["pri":"baz":private]=> -- string(3) "baz" - ["pub"]=> - string(3) "bar" - ["pro":protected]=> - string(3) "bar" - ["pri":"bar":private]=> - string(3) "mod" -+ ["pri":"baz":private]=> -+ string(3) "baz" - ["bar"]=> - bool(true) - ["baz"]=> -diff --git a/tests/apc_003b_legacy.phpt b/tests/apc_003b_legacy.phpt -new file mode 100644 -index 0000000..ca2fa08 ---- /dev/null -+++ b/tests/apc_003b_legacy.phpt -@@ -0,0 +1,113 @@ -+--TEST-- -+APC: apcu_store/fetch with objects -+--SKIPIF-- -+= 80100) die("skip For PHP < 8.1"); -+?> -+--INI-- -+apc.enabled=1 -+apc.enable_cli=1 -+--FILE-- -+a = true; -+var_dump($bar); -+ -+class bar extends foo -+{ -+ public $pub = 'bar'; -+ protected $pro = 'bar'; -+ private $pri = 'bar'; // we don't see this, we'd need php 5.1 new serialization -+ -+ function __construct() -+ { -+ $this->bar = true; -+ } -+ -+ function change() -+ { -+ $this->pri = 'mod'; -+ } -+} -+ -+class baz extends bar -+{ -+ private $pri = 'baz'; -+ -+ function __construct() -+ { -+ parent::__construct(); -+ $this->baz = true; -+ } -+} -+ -+$baz = new baz; -+var_dump($baz); -+$baz->change(); -+var_dump($baz); -+apcu_store('baz', $baz); -+unset($baz); -+var_dump(apcu_fetch('baz')); -+ -+?> -+===DONE=== -+--EXPECTF-- -+object(foo)#%d (0) { -+} -+object(foo)#%d (0) { -+} -+object(foo)#%d (1) { -+ ["a"]=> -+ bool(true) -+} -+object(baz)#%d (6) { -+ ["pri":"baz":private]=> -+ string(3) "baz" -+ ["pub"]=> -+ string(3) "bar" -+ ["pro":protected]=> -+ string(3) "bar" -+ ["pri":"bar":private]=> -+ string(3) "bar" -+ ["bar"]=> -+ bool(true) -+ ["baz"]=> -+ bool(true) -+} -+object(baz)#%d (6) { -+ ["pri":"baz":private]=> -+ string(3) "baz" -+ ["pub"]=> -+ string(3) "bar" -+ ["pro":protected]=> -+ string(3) "bar" -+ ["pri":"bar":private]=> -+ string(3) "mod" -+ ["bar"]=> -+ bool(true) -+ ["baz"]=> -+ bool(true) -+} -+object(baz)#%d (6) { -+ ["pri":"baz":private]=> -+ string(3) "baz" -+ ["pub"]=> -+ string(3) "bar" -+ ["pro":protected]=> -+ string(3) "bar" -+ ["pri":"bar":private]=> -+ string(3) "mod" -+ ["bar"]=> -+ bool(true) -+ ["baz"]=> -+ bool(true) -+} -+===DONE=== -diff --git a/tests/apc_006_php73.phpt b/tests/apc_006_php73.phpt -index 42bdfde..adc09b9 100644 ---- a/tests/apc_006_php73.phpt -+++ b/tests/apc_006_php73.phpt -@@ -4,6 +4,7 @@ APC: apcu_store/fetch reference test - = 7.3'); -+if (PHP_VERSION_ID >= 80100) die('skip Only for PHP < 8.1'); - ?> - --INI-- - apc.enabled=1 -diff --git a/tests/apc_006_php81.phpt b/tests/apc_006_php81.phpt -new file mode 100644 -index 0000000..94219dc ---- /dev/null -+++ b/tests/apc_006_php81.phpt -@@ -0,0 +1,83 @@ -+--TEST-- -+APC: apcu_store/fetch reference test -+--SKIPIF-- -+= 8.1'); -+?> -+--INI-- -+apc.enabled=1 -+apc.enable_cli=1 -+apc.serializer=php -+report_memleaks=0 -+--FILE-- -+ -+===DONE=== -+--EXPECTF-- -+array(9) refcount(2){ -+ [0]=> -+ string(1) "a" interned -+ [1]=> -+ reference refcount(2) { -+ array(1) refcount(1){ -+ [0]=> -+ string(1) "c" interned -+ } -+ } -+ [2]=> -+ reference refcount(2) { -+ array(1) refcount(1){ -+ [0]=> -+ string(1) "c" interned -+ } -+ } -+ [3]=> -+ reference refcount(3) { -+ string(1) "d" interned -+ } -+ [4]=> -+ reference refcount(3) { -+ string(1) "d" interned -+ } -+ [5]=> -+ reference refcount(3) { -+ string(1) "d" interned -+ } -+ [6]=> -+ string(1) "e" interned -+ [7]=> -+ string(1) "e" interned -+ [8]=> -+ reference refcount(2) { -+ array(2) refcount(1){ -+ [0]=> -+ string(1) "f" interned -+ [1]=> -+ reference refcount(2) { -+ *RECURSION* -+ } -+ } -+ } -+} -+===DONE=== -diff --git a/tests/bug76145.phpt b/tests/bug76145.phpt -index 8959a44..56f7e10 100644 ---- a/tests/bug76145.phpt -+++ b/tests/bug76145.phpt -@@ -3,6 +3,7 @@ Bug #76145: Data corruption reading from APCu while unserializing - --INI-- - apc.enabled=1 - apc.enable_cli=1 -+error_reporting=E_ALL&~E_DEPRECATED - --FILE-- - -Date: Wed, 21 Jul 2021 14:10:49 +0200 -Subject: [PATCH] Add return types to APCUIterator - -For compatibility with tentative types added in PHP 8.1. ---- - apc_iterator.c | 10 ++++------ - apc_iterator.stub.php | 24 ++++++++--------------- - apc_iterator_arginfo.h | 20 +++++++++++-------- - apc_iterator_legacy_arginfo.h | 2 +- - tests/iterator_011.phpt | 37 +++++++++++++++++++++++++++++++++++ - 5 files changed, 62 insertions(+), 31 deletions(-) - create mode 100644 tests/iterator_011.phpt - -diff --git a/apc_iterator.c b/apc_iterator.c -index 712b59b..a268718 100644 ---- a/apc_iterator.c -+++ b/apc_iterator.c -@@ -429,7 +429,8 @@ PHP_METHOD(APCUIterator, current) { - - if (apc_stack_size(iterator->stack) == iterator->stack_idx) { - if (iterator->fetch(iterator) == 0) { -- RETURN_FALSE; -+ zend_throw_error(NULL, "Cannot call current() on invalid iterator"); -+ return; - } - } - -@@ -446,13 +447,10 @@ PHP_METHOD(APCUIterator, key) { - } - - ENSURE_INITIALIZED(iterator); -- if (apc_stack_size(iterator->stack) == 0) { -- RETURN_FALSE; -- } -- - if (apc_stack_size(iterator->stack) == iterator->stack_idx) { - if (iterator->fetch(iterator) == 0) { -- RETURN_FALSE; -+ zend_throw_error(NULL, "Cannot call key() on invalid iterator"); -+ return; - } - } - -diff --git a/apc_iterator.stub.php b/apc_iterator.stub.php -index 95b8ce3..11b981c 100644 ---- a/apc_iterator.stub.php -+++ b/apc_iterator.stub.php -@@ -13,27 +13,19 @@ public function __construct( - int $chunk_size = 0, - int $list = APC_LIST_ACTIVE); - -- /** @return void */ -- public function rewind(); -+ public function rewind(): void; - -- /** @return void */ -- public function next(); -+ public function next(): void; - -- /** @return bool */ -- public function valid(); -+ public function valid(): bool; - -- /** @return string|int|false */ -- public function key(); -+ public function key(): string|int; - -- /** @return mixed */ -- public function current(); -+ public function current(): mixed; - -- /** @return int */ -- public function getTotalHits(); -+ public function getTotalHits(): int; - -- /** @return int */ -- public function getTotalSize(); -+ public function getTotalSize(): int; - -- /** @return int */ -- public function getTotalCount(); -+ public function getTotalCount(): int; - } -diff --git a/apc_iterator_arginfo.h b/apc_iterator_arginfo.h -index 3c0ffb1..f1b8eb7 100644 ---- a/apc_iterator_arginfo.h -+++ b/apc_iterator_arginfo.h -@@ -1,5 +1,5 @@ - /* This is a generated file, edit the .stub.php file instead. -- * Stub hash: bb3222265846a53027ddd5c8da8106de9af8b0d5 */ -+ * Stub hash: e8a5a86d5bb9209117834ed0071130889e769c34 */ - - ZEND_BEGIN_ARG_INFO_EX(arginfo_class_APCUIterator___construct, 0, 0, 0) - ZEND_ARG_INFO_WITH_DEFAULT_VALUE(0, search, "null") -@@ -8,22 +8,26 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_APCUIterator___construct, 0, 0, 0) - ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, list, IS_LONG, 0, "APC_LIST_ACTIVE") - ZEND_END_ARG_INFO() - --ZEND_BEGIN_ARG_INFO_EX(arginfo_class_APCUIterator_rewind, 0, 0, 0) -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_APCUIterator_rewind, 0, 0, IS_VOID, 0) - ZEND_END_ARG_INFO() - - #define arginfo_class_APCUIterator_next arginfo_class_APCUIterator_rewind - --#define arginfo_class_APCUIterator_valid arginfo_class_APCUIterator_rewind -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_APCUIterator_valid, 0, 0, _IS_BOOL, 0) -+ZEND_END_ARG_INFO() - --#define arginfo_class_APCUIterator_key arginfo_class_APCUIterator_rewind -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_APCUIterator_key, 0, 0, MAY_BE_STRING|MAY_BE_LONG) -+ZEND_END_ARG_INFO() - --#define arginfo_class_APCUIterator_current arginfo_class_APCUIterator_rewind -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_APCUIterator_current, 0, 0, IS_MIXED, 0) -+ZEND_END_ARG_INFO() - --#define arginfo_class_APCUIterator_getTotalHits arginfo_class_APCUIterator_rewind -+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_APCUIterator_getTotalHits, 0, 0, IS_LONG, 0) -+ZEND_END_ARG_INFO() - --#define arginfo_class_APCUIterator_getTotalSize arginfo_class_APCUIterator_rewind -+#define arginfo_class_APCUIterator_getTotalSize arginfo_class_APCUIterator_getTotalHits - --#define arginfo_class_APCUIterator_getTotalCount arginfo_class_APCUIterator_rewind -+#define arginfo_class_APCUIterator_getTotalCount arginfo_class_APCUIterator_getTotalHits - - - ZEND_METHOD(APCUIterator, __construct); -diff --git a/apc_iterator_legacy_arginfo.h b/apc_iterator_legacy_arginfo.h -index 4ddb156..4dc1fd7 100644 ---- a/apc_iterator_legacy_arginfo.h -+++ b/apc_iterator_legacy_arginfo.h -@@ -1,5 +1,5 @@ - /* This is a generated file, edit the .stub.php file instead. -- * Stub hash: bb3222265846a53027ddd5c8da8106de9af8b0d5 */ -+ * Stub hash: e8a5a86d5bb9209117834ed0071130889e769c34 */ - - ZEND_BEGIN_ARG_INFO_EX(arginfo_class_APCUIterator___construct, 0, 0, 0) - ZEND_ARG_INFO(0, search) -diff --git a/tests/iterator_011.phpt b/tests/iterator_011.phpt -new file mode 100644 -index 0000000..3d2d3f2 ---- /dev/null -+++ b/tests/iterator_011.phpt -@@ -0,0 +1,37 @@ -+--TEST-- -+APCUIterator key() and current() on invalid iterator -+--SKIPIF-- -+ -+--INI-- -+apc.enabled=1 -+apc.enable_cli=1 -+--FILE-- -+key()); -+var_dump($it->current()); -+$it->next(); -+ -+try { -+ var_dump($it->key()); -+} catch (Error $e) { -+ echo $e->getMessage(), "\n"; -+} -+try { -+ var_dump($it->current()); -+} catch (Error $e) { -+ echo $e->getMessage(), "\n"; -+} -+ -+?> -+--EXPECT-- -+string(4) "key1" -+array(1) { -+ ["value"]=> -+ string(6) "value1" -+} -+Cannot call key() on invalid iterator -+Cannot call current() on invalid iterator -- cgit