summaryrefslogtreecommitdiffstats
path: root/1251b877c4e3962c8d4d89d5a210fb380f8177ca.patch
diff options
context:
space:
mode:
Diffstat (limited to '1251b877c4e3962c8d4d89d5a210fb380f8177ca.patch')
-rw-r--r--1251b877c4e3962c8d4d89d5a210fb380f8177ca.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/1251b877c4e3962c8d4d89d5a210fb380f8177ca.patch b/1251b877c4e3962c8d4d89d5a210fb380f8177ca.patch
new file mode 100644
index 0000000..142758d
--- /dev/null
+++ b/1251b877c4e3962c8d4d89d5a210fb380f8177ca.patch
@@ -0,0 +1,40 @@
+From 873bc5031c511abbcbaa17117b86d0109f0fef91 Mon Sep 17 00:00:00 2001
+From: Joe Watkins <krakjoe@php.net>
+Date: Thu, 6 Jun 2019 18:43:30 +0200
+Subject: [PATCH] really fix incorrect usage of zend_declare_class_constant_ex,
+ for PHP >=7.2
+
+---
+ kernels/ZendEngine3/main.c | 19 ++++++++++++++++++-
+ 1 file changed, 18 insertions(+), 1 deletion(-)
+
+diff --git a/kernels/ZendEngine3/main.c b/kernels/ZendEngine3/main.c
+index c940e0e26..c8d45ce0b 100644
+--- a/kernels/ZendEngine3/main.c
++++ b/kernels/ZendEngine3/main.c
+@@ -387,7 +387,24 @@ zend_class_entry* zephir_get_internal_ce(const char *class_name, unsigned int cl
+ /* Declare constants */
+ int zephir_declare_class_constant(zend_class_entry *ce, const char *name, size_t name_length, zval *value)
+ {
+-#if PHP_VERSION_ID >= 70100
++#if PHP_VERSION_ID >= 70200
++ int ret;
++ zend_string *key;
++
++ if (ce->type == ZEND_INTERNAL_CLASS) {
++ key = zend_string_init_interned(name, name_length, 1);
++ } else {
++ key = zend_string_init(name, name_length, 0);
++ }
++
++ zend_declare_class_constant_ex(ce, key, value, ZEND_ACC_PUBLIC, NULL);
++
++ if (ce->type != ZEND_INTERNAL_CLASS) {
++ zend_string_release(key);
++ }
++
++ return ret;
++#elif PHP_VERSION_ID >= 70100
+ int ret;
+
+ zend_string *key = zend_string_init(name, name_length, ce->type & ZEND_INTERNAL_CLASS);