summaryrefslogtreecommitdiff
path: root/ext/xmlrpc/xmlrpc-epi-php.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2018-01-17 17:51:18 +0300
committerDmitry Stogov <dmitry@zend.com>2018-01-17 17:51:18 +0300
commitae620a06cdc56dd9f28dfe46633428df91723472 (patch)
treeeaabade9d4bcd3e69c186c8d7b149cc0f002effe /ext/xmlrpc/xmlrpc-epi-php.c
parent515b0508e098cf224e7abe2991ce73c2192279f7 (diff)
downloadphp-git-ae620a06cdc56dd9f28dfe46633428df91723472.tar.gz
More effecient conversion
Diffstat (limited to 'ext/xmlrpc/xmlrpc-epi-php.c')
-rw-r--r--ext/xmlrpc/xmlrpc-epi-php.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/ext/xmlrpc/xmlrpc-epi-php.c b/ext/xmlrpc/xmlrpc-epi-php.c
index e1732e7acf..96c5e1137d 100644
--- a/ext/xmlrpc/xmlrpc-epi-php.c
+++ b/ext/xmlrpc/xmlrpc-epi-php.c
@@ -516,11 +516,9 @@ static XMLRPC_VALUE PHP_to_XMLRPC_worker (const char* key, zval* in_val, int dep
XMLRPC_SetValueID(xReturn, key, 0);
} else {
if (Z_TYPE(val) != IS_STRING) {
- zval newvalue;
- ZVAL_DUP(&newvalue, &val);
- convert_to_string(&newvalue);
- xReturn = XMLRPC_CreateValueBase64(key, Z_STRVAL(newvalue), Z_STRLEN(newvalue));
- zval_dtor(&newvalue);
+ zend_string *str = zval_get_string_func(&val);
+ xReturn = XMLRPC_CreateValueBase64(key, ZSTR_VAL(str), ZSTR_LEN(str));
+ zend_string_release(str);
} else {
xReturn = XMLRPC_CreateValueBase64(key, Z_STRVAL(val), Z_STRLEN(val));
}