@@ -5168,7 +5168,7 @@ static HashTable *date_object_get_properties_period(zval *object) /* {{{ */
5168
5168
5169
5169
if (period_obj -> start ) {
5170
5170
php_date_obj * date_obj ;
5171
- object_init_ex (& zv , date_ce_date );
5171
+ object_init_ex (& zv , period_obj -> start_ce );
5172
5172
date_obj = Z_PHPDATE_P (& zv );
5173
5173
date_obj -> time = timelib_time_clone (period_obj -> start );
5174
5174
} else {
@@ -5178,7 +5178,7 @@ static HashTable *date_object_get_properties_period(zval *object) /* {{{ */
5178
5178
5179
5179
if (period_obj -> current ) {
5180
5180
php_date_obj * date_obj ;
5181
- object_init_ex (& zv , date_ce_date );
5181
+ object_init_ex (& zv , period_obj -> start_ce );
5182
5182
date_obj = Z_PHPDATE_P (& zv );
5183
5183
date_obj -> time = timelib_time_clone (period_obj -> current );
5184
5184
} else {
@@ -5188,7 +5188,7 @@ static HashTable *date_object_get_properties_period(zval *object) /* {{{ */
5188
5188
5189
5189
if (period_obj -> end ) {
5190
5190
php_date_obj * date_obj ;
5191
- object_init_ex (& zv , date_ce_date );
5191
+ object_init_ex (& zv , period_obj -> start_ce );
5192
5192
date_obj = Z_PHPDATE_P (& zv );
5193
5193
date_obj -> time = timelib_time_clone (period_obj -> end );
5194
5194
} else {
@@ -5225,7 +5225,7 @@ static int php_date_period_initialize_from_hash(php_period_obj *period_obj, Hash
5225
5225
5226
5226
ht_entry = zend_hash_str_find (myht , "start" , sizeof ("start" )- 1 );
5227
5227
if (ht_entry ) {
5228
- if (Z_TYPE_P (ht_entry ) == IS_OBJECT && Z_OBJCE_P (ht_entry ) == date_ce_date ) {
5228
+ if (Z_TYPE_P (ht_entry ) == IS_OBJECT && instanceof_function ( Z_OBJCE_P (ht_entry ), date_ce_interface ) ) {
5229
5229
php_date_obj * date_obj ;
5230
5230
date_obj = Z_PHPDATE_P (ht_entry );
5231
5231
period_obj -> start = timelib_time_clone (date_obj -> time );
@@ -5239,7 +5239,7 @@ static int php_date_period_initialize_from_hash(php_period_obj *period_obj, Hash
5239
5239
5240
5240
ht_entry = zend_hash_str_find (myht , "end" , sizeof ("end" )- 1 );
5241
5241
if (ht_entry ) {
5242
- if (Z_TYPE_P (ht_entry ) == IS_OBJECT && Z_OBJCE_P (ht_entry ) == date_ce_date ) {
5242
+ if (Z_TYPE_P (ht_entry ) == IS_OBJECT && instanceof_function ( Z_OBJCE_P (ht_entry ), date_ce_interface ) ) {
5243
5243
php_date_obj * date_obj ;
5244
5244
date_obj = Z_PHPDATE_P (ht_entry );
5245
5245
period_obj -> end = timelib_time_clone (date_obj -> time );
@@ -5252,7 +5252,7 @@ static int php_date_period_initialize_from_hash(php_period_obj *period_obj, Hash
5252
5252
5253
5253
ht_entry = zend_hash_str_find (myht , "current" , sizeof ("current" )- 1 );
5254
5254
if (ht_entry ) {
5255
- if (Z_TYPE_P (ht_entry ) == IS_OBJECT && Z_OBJCE_P (ht_entry ) == date_ce_date ) {
5255
+ if (Z_TYPE_P (ht_entry ) == IS_OBJECT && instanceof_function ( Z_OBJCE_P (ht_entry ), date_ce_interface ) ) {
5256
5256
php_date_obj * date_obj ;
5257
5257
date_obj = Z_PHPDATE_P (ht_entry );
5258
5258
period_obj -> current = timelib_time_clone (date_obj -> time );
0 commit comments