moriyoshi               Fri Feb 14 13:44:51 2003 EDT

  Added files:                 (Branch: PHP_4_3)
    /php4/ext/standard/tests/strings    bug22224.phpt 

  Modified files:              
    /php4/ext/standard  string.c 
  Log:
  MFH(r1.357): Fixed bug #22224
  MFH: Added test case for the bug
  
  
Index: php4/ext/standard/string.c
diff -u php4/ext/standard/string.c:1.333.2.12 php4/ext/standard/string.c:1.333.2.13
--- php4/ext/standard/string.c:1.333.2.12       Mon Feb 10 14:37:27 2003
+++ php4/ext/standard/string.c  Fri Feb 14 13:44:50 2003
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: string.c,v 1.333.2.12 2003/02/10 19:37:27 pollita Exp $ */
+/* $Id: string.c,v 1.333.2.13 2003/02/14 18:44:50 moriyoshi Exp $ */
 
 /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
 
@@ -836,7 +836,8 @@
        while (zend_hash_get_current_data_ex(Z_ARRVAL_P(arr), 
                                                                                 (void 
**) &tmp,
                                                                                 &pos) 
== SUCCESS) {
-               convert_to_string_ex(tmp);
+               SEPARATE_ZVAL(tmp);
+               convert_to_string(&tmp);
 
                smart_str_appendl(&implstr, Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp));
                if (++i != numelems) {

Index: php4/ext/standard/tests/strings/bug22224.phpt
+++ php4/ext/standard/tests/strings/bug22224.phpt
--TEST--
Bug #22224 (implode changes object references in array)
--INI--
error_reporting=0
--FILE--
<?php
class foo {
}


$a = new foo();
                            
$arr = array(0=>&$a, 1=>&$a);
var_dump(implode(",",$arr));
var_dump($arr)
?>
--EXPECT--
string(13) "Object,Object"
array(2) {
  [0]=>
  &object(foo)(0) {
  }
  [1]=>
  &object(foo)(0) {
  }
}



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to