From a0a028b2987b030153e21510ffd90a8eaf17b0ba Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 25 Aug 2021 09:28:36 +0200 Subject: [PATCH 1/2] fix for PHP 5 --- SeasSnowflake.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/SeasSnowflake.cpp b/SeasSnowflake.cpp index 1a3282e..06b3f5f 100755 --- a/SeasSnowflake.cpp +++ b/SeasSnowflake.cpp @@ -270,7 +270,11 @@ PHP_METHOD(SEASSNOWFLAKE_RES_NAME, generate) PHP_METHOD(SEASSNOWFLAKE_RES_NAME, degenerate) { char *id = NULL; +#if PHP_VERSION_ID < 70000 + int l_id = 0; +#else size_t l_id = 0; +#endif // zval* params = NULL; auto &idWorker = Singleton::instance(); @@ -284,7 +288,7 @@ PHP_METHOD(SEASSNOWFLAKE_RES_NAME, degenerate) idWorker.setWorkerId(Z_LVAL_P(datacenter_id)); #ifndef FAST_ZPP - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|z", &id, &l_id, ¶ms) == FAILURE) + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &id, &l_id) == FAILURE) { return; } From bfe79ed7abdfb65a0b1ab9b12723f1b717d63306 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 25 Aug 2021 09:46:34 +0200 Subject: [PATCH 2/2] fix for 5.4 (lvalue required) --- SeasSnowflake.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SeasSnowflake.cpp b/SeasSnowflake.cpp index 06b3f5f..be2b846 100755 --- a/SeasSnowflake.cpp +++ b/SeasSnowflake.cpp @@ -313,7 +313,7 @@ PHP_METHOD(SEASSNOWFLAKE_RES_NAME, degenerate) uint dataCenterId=idWorker.degenerateDataCenterId(id_i); uint64_t beginTimestamp=idWorker.degenerateBeginTimestamp(id_i); uint64_t timestamp= idWorker.degenerateTimestamp(id_i); - zval arr; + zval arr, *parr = &arr; array_init(&arr); add_assoc_long_ex(&arr, "worker_id", strlen("worker_id"), workerId); @@ -323,7 +323,7 @@ PHP_METHOD(SEASSNOWFLAKE_RES_NAME, degenerate) add_assoc_long_ex(&arr, "begin_timestamp", strlen("begin_timestamp"), beginTimestamp); add_assoc_long_ex(&arr, "interval", strlen("interval"), interval); - RETURN_ZVAL(&arr, 0, 1); + RETURN_ZVAL(parr, 0, 1); } catch (const std::exception& e){ #if PHP_VERSION_ID < 80000 sc_zend_throw_exception(NULL, e.what(), 0 TSRMLS_CC);