Why not use REPLACE_ZVAL_VALUE() macro? On Thu, 10 Mar 2005, Marcus Boerger wrote: > helly Thu Mar 10 18:42:16 2005 EDT > > Modified files: > /php-src/ext/standard string.c > Log: > - Do not touch return_valu's refcount or is_ref > > http://cvs.php.net/diff.php/php-src/ext/standard/string.c?r1=1.429&r2=1.430&ty=u > Index: php-src/ext/standard/string.c > diff -u php-src/ext/standard/string.c:1.429 > php-src/ext/standard/string.c:1.430 > --- php-src/ext/standard/string.c:1.429 Tue Mar 1 09:59:37 2005 > +++ php-src/ext/standard/string.c Thu Mar 10 18:42:15 2005 > @@ -18,7 +18,7 @@ > +----------------------------------------------------------------------+ > */ > > -/* $Id: string.c,v 1.429 2005/03/01 14:59:37 hyanantha Exp $ */ > +/* $Id: string.c,v 1.430 2005/03/10 23:42:15 helly Exp $ */ > > /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */ > > @@ -1078,8 +1078,7 @@ > } > convert_to_string_ex(arg); > > - *return_value = **arg; > - zval_copy_ctor(return_value); > + RETVAL_ZVAL(*arg, 1, 0); > php_strtoupper(Z_STRVAL_P(return_value), Z_STRLEN_P(return_value)); > } > /* }}} */ > @@ -1113,8 +1112,7 @@ > } > convert_to_string_ex(str); > > - *return_value = **str; > - zval_copy_ctor(return_value); > + RETVAL_ZVAL(*str, 1, 0); > ret = php_strtolower(Z_STRVAL_P(return_value), > Z_STRLEN_P(return_value)); > } > /* }}} */ > @@ -1345,19 +1343,17 @@ > } > > if (opt == PHP_PATHINFO_ALL) { > - *return_value = *tmp; > + RETVAL_ZVAL(tmp, 1, 0); > } else { > zval **element; > if (zend_hash_get_current_data(Z_ARRVAL_P(tmp), (void **) > &element) == SUCCESS) { > - *return_value = **element; > + RETVAL_ZVAL(*element, 1, 0); > } else { > ZVAL_EMPTY_STRING(return_value); > } > } > > - zval_copy_ctor(return_value); > - zval_dtor(tmp); > - efree(tmp); > + zval_ptr_dtor(&tmp); > } > /* }}} */ > > @@ -4490,8 +4486,7 @@ > /* If resulting string turns out to be shorter than input string, > we simply copy the input and return. */ > if (num_pad_chars < 0) { > - *return_value = **input; > - zval_copy_ctor(return_value); > + RETVAL_ZVAL(*input, 1, 0); > return; > } > > @@ -4598,9 +4593,7 @@ > if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg)) { > WRONG_PARAM_COUNT; > } > - convert_to_string_ex(arg); > - *return_value = **arg; > - zval_copy_ctor(return_value); > + RETVAL_ZVAL(*arg, 1, 0); > > php_strtr(Z_STRVAL_P(return_value), Z_STRLEN_P(return_value), > rot13_from, rot13_to, 52); > } > @@ -4644,8 +4637,7 @@ > } > > convert_to_string_ex(arg); > - *return_value = **arg; > - zval_copy_ctor(return_value); > + RETVAL_ZVAL(*arg, 1, 0); > if (Z_STRLEN_P(return_value) > 1) { > php_string_shuffle(Z_STRVAL_P(return_value), (long) > Z_STRLEN_P(return_value) TSRMLS_CC); > } > > -- > PHP CVS Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php
- Andrei -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php