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

Reply via email to