diff options
Diffstat (limited to 'ext/soap/php_encoding.c')
| -rw-r--r-- | ext/soap/php_encoding.c | 12 | 
1 files changed, 3 insertions, 9 deletions
| diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index 993a2fa4fc..9c25067f42 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -1065,15 +1065,9 @@ static xmlNodePtr to_xml_long(encodeTypePtr type, zval *data, int style, xmlNode  		snprintf(s, sizeof(s), "%0.0F",floor(Z_DVAL_P(data)));  		xmlNodeSetContent(ret, BAD_CAST(s));  	} else { -		zval tmp; - -		ZVAL_DUP(&tmp, data); -		if (Z_TYPE(tmp) != IS_LONG) { -			convert_to_long(&tmp); -		} -		convert_to_string(&tmp); -		xmlNodeSetContentLen(ret, BAD_CAST(Z_STRVAL(tmp)), Z_STRLEN(tmp)); -		zval_dtor(&tmp); +		zend_string *str = zend_long_to_str(zval_get_long(data)); +		xmlNodeSetContentLen(ret, BAD_CAST(str->val), str->len); +		zend_string_release(str);  	}  	if (style == SOAP_ENCODED) { | 
