cvs: php-src(PHP_5_2) /ext/date php_date.c /ext/date/tests oo_002.phpt

From: Date: Tue, 15 Aug 2006 06:53:21 +0000
Subject: cvs: php-src(PHP_5_2) /ext/date php_date.c /ext/date/tests oo_002.phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-39989@lists.php.net to get a copy of this message
mike Tue Aug 15 06:53:21 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/date php_date.c /php-src/ext/date/tests oo_002.phpt Log: MFH: - fix leak when cloning DateTimeZone, detected by Antony - don't fetch objects multiple times when cloning http://cvs.php.net/viewvc.cgi/php-src/ext/date/php_date.c?r1=1.43.2.45.2.24&r2=1.43.2.45.2.25&diff_format=u Index: php-src/ext/date/php_date.c diff -u php-src/ext/date/php_date.c:1.43.2.45.2.24 php-src/ext/date/php_date.c:1.43.2.45.2.25 --- php-src/ext/date/php_date.c:1.43.2.45.2.24 Mon Aug 14 20:03:11 2006 +++ php-src/ext/date/php_date.c Tue Aug 15 06:53:21 2006 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_date.c,v 1.43.2.45.2.24 2006/08/14 20:03:11 mike Exp $ */ +/* $Id: php_date.c,v 1.43.2.45.2.25 2006/08/15 06:53:21 mike Exp $ */ #include "php.h" #include "php_streams.h" @@ -1497,12 +1497,11 @@ static zend_object_value date_object_clone_date(zval *this_ptr TSRMLS_DC) { - zend_object *old_zo = zend_objects_get_address(this_ptr TSRMLS_CC); - php_date_obj *old_obj = (php_date_obj *) zend_object_store_get_object(this_ptr TSRMLS_CC); php_date_obj *new_obj = NULL; - zend_object_value new_ov = date_object_new_date_ex(old_zo->ce, &new_obj TSRMLS_CC); + php_date_obj *old_obj = (php_date_obj *) zend_object_store_get_object(this_ptr TSRMLS_CC); + zend_object_value new_ov = date_object_new_date_ex(old_obj->std.ce, &new_obj TSRMLS_CC); - zend_objects_clone_members(&new_obj->std, new_ov, old_zo, Z_OBJ_HANDLE_P(this_ptr) TSRMLS_CC); + zend_objects_clone_members(&new_obj->std, new_ov, &old_obj->std, Z_OBJ_HANDLE_P(this_ptr) TSRMLS_CC); /* this should probably moved to a new timelib_time *timelime_time_clone(timelib_time *) */ new_obj->time = timelib_time_ctor(); @@ -1545,13 +1544,12 @@ static zend_object_value date_object_clone_timezone(zval *this_ptr TSRMLS_DC) { - zend_object *old_zo = zend_objects_get_address(this_ptr TSRMLS_CC); - php_timezone_obj *old_obj = (php_timezone_obj *) zend_object_store_get_object(this_ptr TSRMLS_CC); php_timezone_obj *new_obj = NULL; - zend_object_value new_ov = date_object_new_timezone_ex(old_zo->ce, &new_obj TSRMLS_CC); + php_timezone_obj *old_obj = (php_timezone_obj *) zend_object_store_get_object(this_ptr TSRMLS_CC); + zend_object_value new_ov = date_object_new_timezone_ex(old_obj->std.ce, &new_obj TSRMLS_CC); - zend_objects_clone_members(&new_obj->std, new_ov, old_zo, Z_OBJ_HANDLE_P(this_ptr) TSRMLS_CC); - new_obj->tz = timelib_tzinfo_clone(old_obj->tz); + zend_objects_clone_members(&new_obj->std, new_ov, &old_obj->std, Z_OBJ_HANDLE_P(this_ptr) TSRMLS_CC); + new_obj->tz = old_obj->tz; return new_ov; } http://cvs.php.net/viewvc.cgi/php-src/ext/date/tests/oo_002.phpt?r1=1.1.2.2&r2=1.1.2.3&diff_format=u Index: php-src/ext/date/tests/oo_002.phpt diff -u php-src/ext/date/tests/oo_002.phpt:1.1.2.2 php-src/ext/date/tests/oo_002.phpt:1.1.2.3 --- php-src/ext/date/tests/oo_002.phpt:1.1.2.2 Mon Aug 14 20:03:11 2006 +++ php-src/ext/date/tests/oo_002.phpt Tue Aug 15 06:53:21 2006 @@ -14,7 +14,7 @@ $c->modify("1 second ago"); var_dump($d->format(DateTime::RFC822)); var_dump($c->format(DateTime::RFC822)); -$t = new DateTimeZone("Asia/Tokyo"); +$t = new _t("Asia/Tokyo"); var_dump($t->getName()); $c = clone $t; var_dump($c->getName());

« previous php.cvs (#39989) next »