diff options
author | Sunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org> | 2019-01-03 19:57:21 +0000 |
---|---|---|
committer | Sunpoet Po-Chuan Hsieh <sunpoet@FreeBSD.org> | 2019-01-03 19:57:21 +0000 |
commit | aeb7dcf1ffcd7751af447775fd3fa052b3be22d2 (patch) | |
tree | a13c00994712ec588afb35c1faa8f29a165b8ca1 /databases/php-tarantool/files/patch-src-tarantool_msgpack.c | |
parent | Fix MTR_OPTIONS parsing (diff) |
Move databases/php7-tarantool to databases/php-tarantool
Rename php7-tarantool to php-tarantool after php5-tarantool removal
Notes
Notes:
svn path=/head/; revision=489207
Diffstat (limited to 'databases/php-tarantool/files/patch-src-tarantool_msgpack.c')
-rw-r--r-- | databases/php-tarantool/files/patch-src-tarantool_msgpack.c | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/databases/php-tarantool/files/patch-src-tarantool_msgpack.c b/databases/php-tarantool/files/patch-src-tarantool_msgpack.c new file mode 100644 index 000000000000..94d47e993811 --- /dev/null +++ b/databases/php-tarantool/files/patch-src-tarantool_msgpack.c @@ -0,0 +1,122 @@ +--- src/tarantool_msgpack.c.orig 2018-04-18 13:33:56 UTC ++++ src/tarantool_msgpack.c +@@ -123,15 +123,30 @@ void php_mp_pack_array_recursively(smart + for (; key_index < n; ++key_index) { + data = zend_hash_index_find(ht, key_index); + if (!data || data == val || (Z_TYPE_P(data) == IS_ARRAY && ++#if PHP_VERSION_ID >= 70300 ++ !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE) && ++ GC_IS_RECURSIVE(Z_ARRVAL_P(data)))) { ++#else + ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data)) && + Z_ARRVAL_P(data)->u.v.nApplyCount > 1)) { ++#endif + php_mp_pack_nil(str); + } else { ++#if PHP_VERSION_ID >= 70300 ++ if (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE)) ++ GC_PROTECT_RECURSION(Z_ARRVAL_P(data)); ++#else + if (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data))) + Z_ARRVAL_P(data)->u.v.nApplyCount++; ++#endif + php_mp_pack(str, data); ++#if PHP_VERSION_ID >= 70300 ++ if (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE)) ++ GC_UNPROTECT_RECURSION(Z_ARRVAL_P(data)); ++#else + if (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data))) + Z_ARRVAL_P(data)->u.v.nApplyCount--; ++#endif + } + } + } +@@ -166,15 +181,30 @@ void php_mp_pack_hash_recursively(smart_ + } + data = zend_hash_get_current_data_ex(ht, &pos); + if (!data || data == val || (Z_TYPE_P(data) == IS_ARRAY && ++#if PHP_VERSION_ID >= 70300 ++ !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE) && ++ GC_IS_RECURSIVE(Z_ARRVAL_P(data)))) { ++#else + ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data)) && + Z_ARRVAL_P(data)->u.v.nApplyCount > 1)) { ++#endif + php_mp_pack_nil(str); + } else { ++#if PHP_VERSION_ID >= 70300 ++ if (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE)) ++ GC_PROTECT_RECURSION(Z_ARRVAL_P(data)); ++#else + if (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data))) + Z_ARRVAL_P(data)->u.v.nApplyCount++; ++#endif + php_mp_pack(str, data); ++#if PHP_VERSION_ID >= 70300 ++ if (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE)) ++ GC_UNPROTECT_RECURSION(Z_ARRVAL_P(data)); ++#else + if (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data))) + Z_ARRVAL_P(data)->u.v.nApplyCount--; ++#endif + } + } + } +@@ -408,14 +438,28 @@ size_t php_mp_sizeof_array_recursively(z + for (; key_index < n; ++key_index) { + data = zend_hash_index_find(ht, key_index); + if (!data || data == val || ++#if PHP_VERSION_ID >= 70300 ++ (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE) && GC_IS_RECURSIVE(Z_ARRVAL_P(data)))) { ++#else + (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data)) && Z_ARRVAL_P(data)->u.v.nApplyCount > 1)) { ++#endif + needed += php_mp_sizeof_nil(); + } else { ++#if PHP_VERSION_ID >= 70300 ++ if (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE)) ++ GC_PROTECT_RECURSION(Z_ARRVAL_P(data)); ++#else + if (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data))) + Z_ARRVAL_P(data)->u.v.nApplyCount++; ++#endif + needed += php_mp_sizeof(data); ++#if PHP_VERSION_ID >= 70300 ++ if (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE)) ++ GC_UNPROTECT_RECURSION(Z_ARRVAL_P(data)); ++#else + if (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data))) + Z_ARRVAL_P(data)->u.v.nApplyCount--; ++#endif + } + } + return needed; +@@ -452,14 +496,28 @@ size_t php_mp_sizeof_hash_recursively(zv + } + data = zend_hash_get_current_data_ex(ht, &pos); + if (!data || data == val || ++#if PHP_VERSION_ID >= 70300 ++ (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE) && GC_IS_RECURSIVE(Z_ARRVAL_P(data)))) { ++#else + (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data)) && Z_ARRVAL_P(data)->u.v.nApplyCount > 1)) { ++#endif + needed += php_mp_sizeof_nil(); + } else { ++#if PHP_VERSION_ID >= 70300 ++ if (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE)) ++ GC_PROTECT_RECURSION(Z_ARRVAL_P(data)); ++#else + if (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data))) + Z_ARRVAL_P(data)->u.v.nApplyCount++; ++#endif + needed += php_mp_sizeof(data); ++#if PHP_VERSION_ID >= 70300 ++ if (Z_TYPE_P(data) == IS_ARRAY && !(GC_FLAGS(Z_ARRVAL_P(data)) & GC_IMMUTABLE)) ++ GC_UNPROTECT_RECURSION(Z_ARRVAL_P(data)); ++#else + if (Z_TYPE_P(data) == IS_ARRAY && ZEND_HASH_APPLY_PROTECTION(Z_ARRVAL_P(data))) + Z_ARRVAL_P(data)->u.v.nApplyCount--; ++#endif + } + } + return needed; |