diff options
-rw-r--r-- | ext/xsl/xsltprocessor.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/ext/xsl/xsltprocessor.c b/ext/xsl/xsltprocessor.c index 7b3f4a560a..cd59756a3b 100644 --- a/ext/xsl/xsltprocessor.c +++ b/ext/xsl/xsltprocessor.c @@ -95,8 +95,10 @@ static char **php_xsl_xslt_make_params(HashTable *parht, int xpath_params TSRMLS php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid argument or parameter array"); return NULL; } else { - SEPARATE_ZVAL(value); - convert_to_string_ex(value); + if (Z_TYPE_PP(value) != IS_STRING) { + SEPARATE_ZVAL(value); + convert_to_string(*value); + } if (!xpath_params) { xpath_expr = php_xsl_xslt_string_to_xpathexpr(Z_STRVAL_PP(value) TSRMLS_CC); |