aboutsummaryrefslogtreecommitdiff
path: root/php/ext/google/protobuf/message.c
diff options
context:
space:
mode:
Diffstat (limited to 'php/ext/google/protobuf/message.c')
-rw-r--r--php/ext/google/protobuf/message.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/php/ext/google/protobuf/message.c b/php/ext/google/protobuf/message.c
index df5eb408..8b7d57ad 100644
--- a/php/ext/google/protobuf/message.c
+++ b/php/ext/google/protobuf/message.c
@@ -1123,21 +1123,16 @@ PHP_METHOD(Timestamp, fromDateTime) {
zval* datetime;
zval member;
- 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) {
+ PHP_PROTO_CE_DECLARE date_interface_ce;
+ if (php_proto_zend_lookup_class("\\DatetimeInterface", 18,
+ &date_interface_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.");
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &datetime,
+ date_interface_ce) == FAILURE) {
+ zend_error(E_USER_ERROR, "Expect DatetimeInterface.");
return;
}