From 3275e985d2b4216728dce7d770c9578c25c18572 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Thu, 28 Jun 2018 12:13:50 +0200 Subject: add upstream patch for PHP 7.3 --- 8bfdbcc9063dafcb25fdb1d1705e07ee027d7379.patch | 65 ++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 8bfdbcc9063dafcb25fdb1d1705e07ee027d7379.patch (limited to '8bfdbcc9063dafcb25fdb1d1705e07ee027d7379.patch') diff --git a/8bfdbcc9063dafcb25fdb1d1705e07ee027d7379.patch b/8bfdbcc9063dafcb25fdb1d1705e07ee027d7379.patch new file mode 100644 index 0000000..bde5acc --- /dev/null +++ b/8bfdbcc9063dafcb25fdb1d1705e07ee027d7379.patch @@ -0,0 +1,65 @@ +From 8bfdbcc9063dafcb25fdb1d1705e07ee027d7379 Mon Sep 17 00:00:00 2001 +From: Aaron Stone +Date: Thu, 29 Mar 2018 23:26:46 -0700 +Subject: [PATCH] Update for new PHP 7.3 REFCOUNT macros (#390) + +--- + .travis.yml | 3 +++ + php_memcached.c | 4 ++-- + php_memcached_private.h | 7 +++++++ + php_memcached_session.c | 2 +- + 4 files changed, 13 insertions(+), 3 deletions(-) + +diff --git a/php_memcached.c b/php_memcached.c +index a42ff19..bd0f559 100644 +--- a/php_memcached.c ++++ b/php_memcached.c +@@ -1298,7 +1298,7 @@ static PHP_METHOD(Memcached, __construct) + le.type = php_memc_list_entry(); + le.ptr = intern->memc; + +- GC_REFCOUNT(&le) = 1; ++ GC_SET_REFCOUNT(&le, 1); + + /* plist_key is not a persistent allocated key, thus we use str_update here */ + if (zend_hash_str_update_mem(&EG(persistent_list), ZSTR_VAL(plist_key), ZSTR_LEN(plist_key), &le, sizeof(le)) == NULL) { +@@ -3831,7 +3831,7 @@ PHP_METHOD(MemcachedServer, on) + + Z_TRY_ADDREF(fci.function_name); + if (fci.object) { +- GC_REFCOUNT(fci.object)++; ++ GC_ADDREF(fci.object); + } + } + RETURN_BOOL(rc); +diff --git a/php_memcached_private.h b/php_memcached_private.h +index a04e19b..abc0459 100644 +--- a/php_memcached_private.h ++++ b/php_memcached_private.h +@@ -72,6 +72,13 @@ typedef unsigned long int uint32_t; + # endif + #endif + ++/* Backwards compatibility for GC API change in PHP 7.3 */ ++#if PHP_VERSION_ID < 70300 ++# define GC_ADDREF(p) ++GC_REFCOUNT(p) ++# define GC_DELREF(p) --GC_REFCOUNT(p) ++# define GC_SET_REFCOUNT(p, rc) GC_REFCOUNT(p) = rc ++#endif ++ + /**************************************** + Structures and definitions + ****************************************/ +diff --git a/php_memcached_session.c b/php_memcached_session.c +index d8e9be6..607a02c 100644 +--- a/php_memcached_session.c ++++ b/php_memcached_session.c +@@ -376,7 +376,7 @@ PS_OPEN_FUNC(memcached) + le.type = s_memc_sess_list_entry(); + le.ptr = memc; + +- GC_REFCOUNT(&le) = 1; ++ GC_SET_REFCOUNT(&le, 1); + + /* plist_key is not a persistent allocated key, thus we use str_update here */ + if (zend_hash_str_update_mem(&EG(persistent_list), plist_key, plist_key_len, &le, sizeof(le)) == NULL) { -- cgit