summaryrefslogtreecommitdiff
path: root/ext/soap/php_encoding.c
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2015-06-11 23:58:34 +0200
committerChristoph M. Becker <cmbecker69@gmx.de>2015-06-11 23:58:34 +0200
commit9692e74b04eacf7a46f65df8db3eef34e695dba9 (patch)
tree3f9fbbb318fd90987e5f5b3f1e59683113cc3c4a /ext/soap/php_encoding.c
parent163f51a4cfc50f872dc5df42a4b3c12ae921764a (diff)
parent5d3cf577aad15b119c137a873f468c0614f2eb2e (diff)
downloadphp-git-9692e74b04eacf7a46f65df8db3eef34e695dba9.tar.gz
Merge branch 'master' of https://git.php.net/push/php-src
Diffstat (limited to 'ext/soap/php_encoding.c')
-rw-r--r--ext/soap/php_encoding.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c
index 96207f7975..7bff2aeab6 100644
--- a/ext/soap/php_encoding.c
+++ b/ext/soap/php_encoding.c
@@ -923,21 +923,16 @@ 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));
- text = xmlNewTextLen(BAD_CAST(str->val), str->len);
- xmlAddChild(ret, text);
- zend_string_release(str);
} else {
- zval tmp;
-
- ZVAL_DUP(&tmp, data);
- convert_to_string(&tmp);
- str = php_base64_encode((unsigned char*)Z_STRVAL(tmp), Z_STRLEN(tmp));
- text = xmlNewTextLen(BAD_CAST(str->val), str->len);
- xmlAddChild(ret, text);
- zend_string_release(str);
- zval_dtor(&tmp);
+ zend_string *tmp = zval_get_string(data);
+ str = php_base64_encode((unsigned char*) tmp->val, tmp->len);
+ zend_string_release(tmp);
}
+ text = xmlNewTextLen(BAD_CAST(str->val), str->len);
+ xmlAddChild(ret, text);
+ zend_string_release(str);
+
if (style == SOAP_ENCODED) {
set_ns_and_type(ret, type);
}