dmitry          Thu Feb 14 08:46:08 2008 UTC

  Modified files:              (Branch: PHP_5_2)
    /php-src/ext/standard       array.c 
    /php-src/ext/standard/tests/array   array_push_variation4.phpt 
  Log:
  Fixed memory leak
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/array.c?r1=1.308.2.21.2.50&r2=1.308.2.21.2.51&diff_format=u
Index: php-src/ext/standard/array.c
diff -u php-src/ext/standard/array.c:1.308.2.21.2.50 
php-src/ext/standard/array.c:1.308.2.21.2.51
--- php-src/ext/standard/array.c:1.308.2.21.2.50        Tue Feb 12 12:47:30 2008
+++ php-src/ext/standard/array.c        Thu Feb 14 08:46:08 2008
@@ -21,7 +21,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: array.c,v 1.308.2.21.2.50 2008/02/12 12:47:30 felipe Exp $ */
+/* $Id: array.c,v 1.308.2.21.2.51 2008/02/14 08:46:08 dmitry Exp $ */
 
 #include "php.h"
 #include "php_ini.h"
@@ -1975,6 +1975,7 @@
                new_var->refcount++;
        
                if (zend_hash_next_index_insert(Z_ARRVAL_P(stack), &new_var, 
sizeof(zval *), NULL) == FAILURE) {
+                       new_var->refcount--;
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot add 
element to the array as the next element is already occupied");
                        efree(args);
                        RETURN_FALSE;
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/array_push_variation4.phpt?r1=1.1.2.1&r2=1.1.2.2&diff_format=u
Index: php-src/ext/standard/tests/array/array_push_variation4.phpt
diff -u php-src/ext/standard/tests/array/array_push_variation4.phpt:1.1.2.1 
php-src/ext/standard/tests/array/array_push_variation4.phpt:1.1.2.2
--- php-src/ext/standard/tests/array/array_push_variation4.phpt:1.1.2.1 Wed Feb 
13 16:10:42 2008
+++ php-src/ext/standard/tests/array/array_push_variation4.phpt Thu Feb 14 
08:46:08 2008
@@ -32,6 +32,9 @@
 var_dump(array_push($array, &$array));
 var_dump($array);
 
+/* break cycle */
+$array[9] = null;
+
 echo "Done";
 ?>
 --EXPECTF--

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

Reply via email to