diff options
author | Dmitry Stogov <dmitry@zend.com> | 2017-10-06 01:34:50 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2017-10-06 01:34:50 +0300 |
commit | cb9d81ef4f07f82835273800b0cb3d6a67816050 (patch) | |
tree | dad640422674e3eb45a2577f5b29fcd7ad9c8676 /ext/soap/php_encoding.c | |
parent | 39ea632f7468e1001b15b9c43afc6aba9debdc9c (diff) | |
download | php-git-cb9d81ef4f07f82835273800b0cb3d6a67816050.tar.gz |
Refactored recursion pretection
Diffstat (limited to 'ext/soap/php_encoding.c')
-rw-r--r-- | ext/soap/php_encoding.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index a88d14fb1a..6d69d81c33 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -453,7 +453,7 @@ static xmlNodePtr master_to_xml_int(encodePtr encode, zval *data, int style, xml } else { if (check_class_map && SOAP_GLOBAL(class_map) && data && Z_TYPE_P(data) == IS_OBJECT && - !ZEND_HASH_GET_APPLY_COUNT(Z_OBJPROP_P(data))) { + !GC_IS_RECURSIVE(Z_OBJPROP_P(data))) { zend_class_entry *ce = Z_OBJCE_P(data); zval *tmp; zend_string *type_name; @@ -1859,9 +1859,9 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNo sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_LIST && sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_UNION) { - if (prop) ZEND_HASH_INC_APPLY_COUNT(prop); + if (prop) {GC_PROTECT_RECURSION(prop);} xmlParam = master_to_xml(sdlType->encode, data, style, parent); - if (prop) ZEND_HASH_DEC_APPLY_COUNT(prop); + if (prop) {GC_UNPROTECT_RECURSION(prop);} } else { zval rv; zval *tmp = get_zval_property(data, "_", &rv); |