helly Sun Mar 14 17:59:06 2004 EDT
Modified files:
/php-src/ext/standard type.c
Log:
Fix strval to use __toString if necessary
http://cvs.php.net/diff.php/php-src/ext/standard/type.c?r1=1.23&r2=1.24&ty=u
Index: php-src/ext/standard/type.c
diff -u php-src/ext/standard/type.c:1.23 php-src/ext/standard/type.c:1.24
--- php-src/ext/standard/type.c:1.23 Thu Jan 8 03:17:34 2004
+++ php-src/ext/standard/type.c Sun Mar 14 17:59:04 2004
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: type.c,v 1.23 2004/01/08 08:17:34 andi Exp $ */
+/* $Id: type.c,v 1.24 2004/03/14 22:59:04 helly Exp $ */
#include "php.h"
#include "php_incomplete_class.h"
@@ -180,14 +180,24 @@
PHP_FUNCTION(strval)
{
pval **num;
+ zval expr_copy;
+ int use_copy;
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &num) == FAILURE) {
WRONG_PARAM_COUNT;
}
*return_value = **num;
- zval_copy_ctor(return_value);
- convert_to_string(return_value);
+
+ zend_make_printable_zval(return_value, &expr_copy, &use_copy);
+ if (use_copy) {
+ *return_value = expr_copy;
+ INIT_PZVAL(return_value);
+ zval_copy_ctor(return_value);
+ zval_dtor(&expr_copy);
+ } else {
+ zval_copy_ctor(return_value);
+ }
}
/* }}} */
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php