mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Fixed retval with zend_call_method
This commit is contained in:
parent
477f565f80
commit
a94ec141fe
2 changed files with 6 additions and 8 deletions
|
@ -1141,7 +1141,7 @@ U_CFUNC PHP_FUNCTION(intlcal_from_date_time)
|
||||||
zval *zv_arg,
|
zval *zv_arg,
|
||||||
zv_tmp,
|
zv_tmp,
|
||||||
*zv_datetime = NULL,
|
*zv_datetime = NULL,
|
||||||
*zv_timestamp = NULL;
|
zv_timestamp;
|
||||||
php_date_obj *datetime;
|
php_date_obj *datetime;
|
||||||
char *locale_str = NULL;
|
char *locale_str = NULL;
|
||||||
int locale_str_len;
|
int locale_str_len;
|
||||||
|
@ -1178,11 +1178,12 @@ U_CFUNC PHP_FUNCTION(intlcal_from_date_time)
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
zend_call_method_with_0_params(zv_datetime, php_date_get_date_ce(), NULL, "gettimestamp", zv_timestamp);
|
zend_call_method_with_0_params(zv_datetime, php_date_get_date_ce(), NULL, "gettimestamp", &zv_timestamp);
|
||||||
if (!zv_timestamp || Z_TYPE_P(zv_timestamp) != IS_LONG) {
|
if (Z_TYPE(zv_timestamp) != IS_LONG) {
|
||||||
intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR,
|
intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR,
|
||||||
"intlcal_from_date_time: bad DateTime; call to "
|
"intlcal_from_date_time: bad DateTime; call to "
|
||||||
"DateTime::getTimestamp() failed", 0 TSRMLS_CC);
|
"DateTime::getTimestamp() failed", 0 TSRMLS_CC);
|
||||||
|
zval_ptr_dtor(&zv_timestamp);
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1208,7 +1209,7 @@ U_CFUNC PHP_FUNCTION(intlcal_from_date_time)
|
||||||
"error creating ICU Calendar object", 0 TSRMLS_CC);
|
"error creating ICU Calendar object", 0 TSRMLS_CC);
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
cal->setTime(((UDate)Z_LVAL_P(zv_timestamp)) * 1000., status);
|
cal->setTime(((UDate)Z_LVAL(zv_timestamp)) * 1000., status);
|
||||||
if (U_FAILURE(status)) {
|
if (U_FAILURE(status)) {
|
||||||
/* time zone was adopted by cal; should not be deleted here */
|
/* time zone was adopted by cal; should not be deleted here */
|
||||||
delete cal;
|
delete cal;
|
||||||
|
@ -1223,9 +1224,6 @@ error:
|
||||||
if (zv_datetime && zv_datetime != zv_arg) {
|
if (zv_datetime && zv_datetime != zv_arg) {
|
||||||
zval_ptr_dtor(zv_datetime);
|
zval_ptr_dtor(zv_datetime);
|
||||||
}
|
}
|
||||||
if (zv_timestamp) {
|
|
||||||
zval_ptr_dtor(zv_timestamp);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
U_CFUNC PHP_FUNCTION(intlcal_to_date_time)
|
U_CFUNC PHP_FUNCTION(intlcal_to_date_time)
|
||||||
|
|
|
@ -436,7 +436,7 @@ U_CFUNC PHP_FUNCTION(intltz_get_id)
|
||||||
id_us.getBuffer(), id_us.length(), TIMEZONE_ERROR_CODE_P(to));
|
id_us.getBuffer(), id_us.length(), TIMEZONE_ERROR_CODE_P(to));
|
||||||
INTL_METHOD_CHECK_STATUS(to, "intltz_get_id: Could not convert id to UTF-8");
|
INTL_METHOD_CHECK_STATUS(to, "intltz_get_id: Could not convert id to UTF-8");
|
||||||
|
|
||||||
RETURN_STRINGL(id, id_len);
|
RETVAL_STRINGL(id, id_len);
|
||||||
//???
|
//???
|
||||||
efree(id);
|
efree(id);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue