diff options
Diffstat (limited to '33.patch')
-rw-r--r-- | 33.patch | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/33.patch b/33.patch deleted file mode 100644 index 6e1f935..0000000 --- a/33.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 4a3eb9f1c92e9dff6ce723bd94daef1580d080d2 Mon Sep 17 00:00:00 2001 -From: Remi Collet <remi@remirepo.net> -Date: Wed, 4 Jul 2018 12:14:48 +0200 -Subject: [PATCH] Fix for PHP 7.3 - ---- - .gitignore | 2 ++ - .travis.yml | 3 +++ - emit.c | 53 ++++++++++++++++++++++++++++++++++++++++++----------- - 3 files changed, 47 insertions(+), 11 deletions(-) - -diff --git a/emit.c b/emit.c -index 993a666..fd3769e 100644 ---- a/emit.c -+++ b/emit.c -@@ -173,7 +173,11 @@ static void y_scan_recursion(const y_emit_state_t *state, zval *data TSRMLS_DC) - return; - } - -+#if PHP_VERSION_ID >= 70300 -+ if (!(GC_FLAGS(ht) & GC_IMMUTABLE) && GC_IS_RECURSIVE(ht)) { -+#else - if (ZEND_HASH_APPLY_PROTECTION(ht) && ht->u.v.nApplyCount > 0) { -+#endif - zval tmp; - ZVAL_LONG(&tmp, (zend_ulong) ht); - -@@ -182,17 +186,29 @@ static void y_scan_recursion(const y_emit_state_t *state, zval *data TSRMLS_DC) - return; - } - -+#if PHP_VERSION_ID >= 70300 -+ if (!(GC_FLAGS(ht) & GC_IMMUTABLE)) { -+ GC_PROTECT_RECURSION(ht); -+ } -+#else - if (ZEND_HASH_APPLY_PROTECTION(ht)) { - ht->u.v.nApplyCount++; - } -+#endif - - ZEND_HASH_FOREACH_VAL(ht, elm) { - y_scan_recursion(state, elm TSRMLS_CC); - } ZEND_HASH_FOREACH_END(); - -+#if PHP_VERSION_ID >= 70300 -+ if (!(GC_FLAGS(ht) & GC_IMMUTABLE)) { -+ GC_UNPROTECT_RECURSION(ht); -+ } -+#else - if (ZEND_HASH_APPLY_PROTECTION(ht)) { - ht->u.v.nApplyCount--; - } -+#endif - - return; - } -@@ -462,7 +478,6 @@ static int y_write_array( - zval key_zval; - zend_ulong kidx; - zend_string *kstr; -- HashTable *tmp_ht; - zend_long recursive_idx = -1; - char *anchor = { 0 }; - size_t anchor_size; -@@ -495,7 +510,11 @@ static int y_write_array( - anchor = (char*) emalloc(anchor_size + 1); - snprintf(anchor, anchor_size + 1, "refid%ld", recursive_idx + 1); - -- if (ZEND_HASH_APPLY_PROTECTION(ht) && ht->u.v.nApplyCount > 1) { -+#if PHP_VERSION_ID >= 70300 -+ if (!(GC_FLAGS(ht) & GC_IMMUTABLE) && GC_IS_RECURSIVE(ht)) { -+#else -+ if (ZEND_HASH_APPLY_PROTECTION(ht) && ht->u.v.nApplyCount > 0) { -+#endif - /* node has been visited before */ - status = yaml_alias_event_initialize( - &event, (yaml_char_t *) anchor); -@@ -536,6 +555,18 @@ static int y_write_array( - return FAILURE; - } - -+#if PHP_VERSION_ID >= 70300 -+ if (!(GC_FLAGS(ht) & GC_IMMUTABLE)) { -+ /* increment access count for hash */ -+ GC_PROTECT_RECURSION(ht); -+ } -+#else -+ if (ZEND_HASH_APPLY_PROTECTION(ht)) { -+ /* increment access count for hash */ -+ ht->u.v.nApplyCount++; -+ } -+#endif -+ - /* emit array elements */ - ZEND_HASH_FOREACH_KEY_VAL(ht, kidx, kstr, elm) { - ZVAL_DEREF(elm); -@@ -555,23 +586,23 @@ static int y_write_array( - } - } - -- tmp_ht = HASH_OF(elm); -- if (tmp_ht && ZEND_HASH_APPLY_PROTECTION(tmp_ht)) { -- /* increment access count for hash */ -- tmp_ht->u.v.nApplyCount++; -- } -- - status = y_write_zval(state, elm, NULL TSRMLS_CC); - -- if (tmp_ht && ZEND_HASH_APPLY_PROTECTION(tmp_ht)) { -- tmp_ht->u.v.nApplyCount--; -- } - - if (SUCCESS != status) { - return FAILURE; - } - } ZEND_HASH_FOREACH_END(); - -+#if PHP_VERSION_ID >= 70300 -+ if (!(GC_FLAGS(ht) & GC_IMMUTABLE)) { -+ GC_UNPROTECT_RECURSION(ht); -+ } -+#else -+ if (ZEND_HASH_APPLY_PROTECTION(ht)) { -+ ht->u.v.nApplyCount--; -+ } -+#endif - - if (Y_ARRAY_SEQUENCE == array_type) { - status = yaml_sequence_end_event_initialize(&event); |