diff options
Diffstat (limited to 'ext/date/php_date.c')
-rw-r--r-- | ext/date/php_date.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/ext/date/php_date.c b/ext/date/php_date.c index ed46a3be60..99edbc0f45 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -1497,12 +1497,11 @@ static zend_object_value date_object_new_date(zend_class_entry *class_type TSRML 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_new_timezone(zend_class_entry *class_type T 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; } |