Avoid using php_date_get_date_ce() in case date extension is not

available.
pull/4034/head
Bo Yang 7 years ago
parent fffe8d39f8
commit 1a549d9a90
  1. 17
      php/ext/google/protobuf/message.c

@ -1123,8 +1123,21 @@ PHP_METHOD(Timestamp, fromDateTime) {
zval* datetime;
zval member;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &datetime,
php_date_get_date_ce()) == FAILURE) {
if (zend_parse_parameters(
ZEND_NUM_ARGS() TSRMLS_CC, "z", &datetime) == FAILURE) {
return;
}
zend_class_entry* ce = Z_OBJCE_P(datetime);
PHP_PROTO_CE_DECLARE datetime_ce;
if (php_proto_zend_lookup_class("\\Datetime", 9, &datetime_ce) ==
FAILURE) {
zend_error(E_ERROR, "Make sure date extension is enabled.");
return;
}
if (!instanceof_function(PHP_PROTO_CE_UNREF(datetime_ce), ce TSRMLS_CC)) {
zend_error(E_USER_ERROR, "Expect Datetime.");
return;
}

Loading…
Cancel
Save