diff options
Diffstat (limited to 'ext/soap/php_encoding.c')
-rw-r--r-- | ext/soap/php_encoding.c | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index c29e967091..faca3acc15 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -14,10 +14,9 @@ +----------------------------------------------------------------------+ | Authors: Brad Lafountain <rodif_bl@yahoo.com> | | Shane Caraveo <shane@caraveo.com> | - | Dmitry Stogov <dmitry@zend.com> | + | Dmitry Stogov <dmitry@php.net> | +----------------------------------------------------------------------+ */ -/* $Id$ */ #include <time.h> @@ -140,7 +139,7 @@ static void set_ns_and_type(xmlNodePtr node, encodeTypePtr type); } \ } -encode defaultEncoding[] = { +const encode defaultEncoding[] = { {{UNKNOWN_TYPE, NULL, NULL, NULL, NULL}, guess_zval_convert, guess_xml_convert}, {{IS_NULL, "nil", XSI_NAMESPACE, NULL, NULL}, to_zval_null, to_xml_null}, @@ -149,7 +148,6 @@ encode defaultEncoding[] = { {{IS_DOUBLE, XSD_FLOAT_STRING, XSD_NAMESPACE, NULL, NULL}, to_zval_double, to_xml_double}, {{IS_FALSE, XSD_BOOLEAN_STRING, XSD_NAMESPACE, NULL, NULL}, to_zval_bool, to_xml_bool}, {{IS_TRUE, XSD_BOOLEAN_STRING, XSD_NAMESPACE, NULL, NULL}, to_zval_bool, to_xml_bool}, - {{IS_CONSTANT, XSD_STRING_STRING, XSD_NAMESPACE, NULL, NULL}, to_zval_string, to_xml_string}, {{IS_ARRAY, SOAP_ENC_ARRAY_STRING, SOAP_1_1_ENC_NAMESPACE, NULL, NULL}, to_zval_array, guess_array_map}, {{IS_OBJECT, SOAP_ENC_OBJECT_STRING, SOAP_1_1_ENC_NAMESPACE, NULL, NULL}, to_zval_object, to_xml_object}, {{IS_ARRAY, SOAP_ENC_ARRAY_STRING, SOAP_1_2_ENC_NAMESPACE, NULL, NULL}, to_zval_array, guess_array_map}, @@ -451,7 +449,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; @@ -844,10 +842,10 @@ static xmlNodePtr to_xml_string(encodeTypePtr type, zval *data, int style, xmlNo str = estrndup(Z_STRVAL_P(data), Z_STRLEN_P(data)); new_len = Z_STRLEN_P(data); } else { - zend_string *tmp = zval_get_string(data); + zend_string *tmp = zval_get_string_func(data); str = estrndup(ZSTR_VAL(tmp), ZSTR_LEN(tmp)); new_len = ZSTR_LEN(tmp); - zend_string_release(tmp); + zend_string_release_ex(tmp, 0); } if (SOAP_GLOBAL(encoding) != NULL) { @@ -927,14 +925,14 @@ static xmlNodePtr to_xml_base64(encodeTypePtr type, zval *data, int style, xmlNo if (Z_TYPE_P(data) == IS_STRING) { str = php_base64_encode((unsigned char*)Z_STRVAL_P(data), Z_STRLEN_P(data)); } else { - zend_string *tmp = zval_get_string(data); + zend_string *tmp = zval_get_string_func(data); str = php_base64_encode((unsigned char*) ZSTR_VAL(tmp), ZSTR_LEN(tmp)); - zend_string_release(tmp); + zend_string_release_ex(tmp, 0); } text = xmlNewTextLen(BAD_CAST(ZSTR_VAL(str)), ZSTR_LEN(str)); xmlAddChild(ret, text); - zend_string_release(str); + zend_string_release_ex(str, 0); if (style == SOAP_ENCODED) { set_ns_and_type(ret, type); @@ -955,7 +953,7 @@ static xmlNodePtr to_xml_hexbin(encodeTypePtr type, zval *data, int style, xmlNo FIND_ZVAL_NULL(data, ret, style); if (Z_TYPE_P(data) != IS_STRING) { - ZVAL_STR(&tmp, zval_get_string(data)); + ZVAL_STR(&tmp, zval_get_string_func(data)); data = &tmp; } str = (unsigned char *) safe_emalloc(Z_STRLEN_P(data) * 2, sizeof(char), 1); @@ -970,7 +968,7 @@ static xmlNodePtr to_xml_hexbin(encodeTypePtr type, zval *data, int style, xmlNo xmlAddChild(ret, text); efree(str); if (data == &tmp) { - zval_dtor(&tmp); + zval_ptr_dtor_str(&tmp); } if (style == SOAP_ENCODED) { @@ -1065,7 +1063,7 @@ static xmlNodePtr to_xml_long(encodeTypePtr type, zval *data, int style, xmlNode } else { zend_string *str = zend_long_to_str(zval_get_long(data)); xmlNodeSetContentLen(ret, BAD_CAST(ZSTR_VAL(str)), ZSTR_LEN(str)); - zend_string_release(str); + zend_string_release_ex(str, 0); } if (style == SOAP_ENCODED) { @@ -1168,7 +1166,7 @@ static xmlNodePtr to_xml_null(encodeTypePtr type, zval *data, int style, xmlNode static void set_zval_property(zval* object, char* name, zval* val) { zend_update_property(Z_OBJCE_P(object), object, name, strlen(name), val); - if (Z_REFCOUNTED_P(val)) Z_DELREF_P(val); + Z_TRY_DELREF_P(val); } static zval* get_zval_property(zval* object, char* name, zval *rv) @@ -1858,9 +1856,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_TRY_PROTECT_RECURSION(prop); } xmlParam = master_to_xml(sdlType->encode, data, style, parent); - if (prop) ZEND_HASH_DEC_APPLY_COUNT(prop); + if (prop) { GC_TRY_UNPROTECT_RECURSION(prop); } } else { zval rv; zval *tmp = get_zval_property(data, "_", &rv); @@ -2265,7 +2263,7 @@ static xmlNodePtr to_xml_array(encodeTypePtr type, zval *data, int style, xmlNod } array_set_zval_key(Z_ARRVAL(array_copy), &key, val); zval_ptr_dtor(val); - zval_dtor(&key); + zval_ptr_dtor(&key); } else { add_next_index_zval(&array_copy, val); } @@ -3029,7 +3027,7 @@ static xmlNodePtr to_xml_list(encodeTypePtr enc, zval *data, int style, xmlNodeP smart_str list = {0}; if (Z_TYPE_P(data) != IS_STRING) { - ZVAL_STR(&tmp, zval_get_string(data)); + ZVAL_STR(&tmp, zval_get_string_func(data)); data = &tmp; } str = estrndup(Z_STRVAL_P(data), Z_STRLEN_P(data)); @@ -3068,7 +3066,9 @@ static xmlNodePtr to_xml_list(encodeTypePtr enc, zval *data, int style, xmlNodeP } smart_str_free(&list); efree(str); - if (data == &tmp) {zval_dtor(&tmp);} + if (data == &tmp) { + zval_ptr_dtor_str(&tmp); + } } return ret; } @@ -3139,9 +3139,9 @@ static xmlNodePtr to_xml_any(encodeTypePtr type, zval *data, int style, xmlNodeP if (Z_TYPE_P(data) == IS_STRING) { ret = xmlNewTextLen(BAD_CAST(Z_STRVAL_P(data)), Z_STRLEN_P(data)); } else { - zend_string *tmp = zval_get_string(data); + zend_string *tmp = zval_get_string_func(data); ret = xmlNewTextLen(BAD_CAST(ZSTR_VAL(tmp)), ZSTR_LEN(tmp)); - zend_string_release(tmp); + zend_string_release_ex(tmp, 0); } ret->name = xmlStringTextNoenc; |