aboutsummaryrefslogtreecommitdiffhomepage
path: root/php/ext
diff options
context:
space:
mode:
authorGravatar Bo Yang <teboring@google.com>2017-12-12 12:06:51 -0800
committerGravatar Bo Yang <teboring@google.com>2017-12-12 12:06:51 -0800
commit9f6aceaa8ce8250d9e36225180c218035bd49fe9 (patch)
tree25112df4c4e92cae9a38a16b640bf1ad36f06b68 /php/ext
parentb1386e77a2f4a901a45ad906da7c8cf8a517ab0e (diff)
Add PROTOBUF_ENABLE_TIMESTAMP to let user decide whether timestamp util
can be used at install time.
Diffstat (limited to 'php/ext')
-rw-r--r--php/ext/google/protobuf/message.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/php/ext/google/protobuf/message.c b/php/ext/google/protobuf/message.c
index b14c1f0c..70080a3b 100644
--- a/php/ext/google/protobuf/message.c
+++ b/php/ext/google/protobuf/message.c
@@ -29,9 +29,12 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <php.h>
-#include <ext/date/php_date.h>
#include <stdlib.h>
+#ifdef PROTOBUF_ENABLE_TIMESTAMP
+#include <ext/date/php_date.h>
+#endif
+
#include "protobuf.h"
#include "utf8.h"
@@ -1121,6 +1124,7 @@ PHP_PROTO_FIELD_ACCESSORS(Timestamp, timestamp, Seconds, "seconds")
PHP_PROTO_FIELD_ACCESSORS(Timestamp, timestamp, Nanos, "nanos")
PHP_METHOD(Timestamp, fromDateTime) {
+#ifdef PROTOBUF_ENABLE_TIMESTAMP
zval* datetime;
zval member;
@@ -1149,9 +1153,13 @@ PHP_METHOD(Timestamp, fromDateTime) {
storage = message_data(self);
memory = slot_memory(self->descriptor->layout, storage, field);
*(int32_t*)memory = 0;
+#else
+ zend_error(E_USER_ERROR, "fromDateTime needs date extension.");
+#endif
}
PHP_METHOD(Timestamp, toDateTime) {
+#ifdef PROTOBUF_ENABLE_TIMESTAMP
zval datetime;
php_date_instantiate(php_date_get_date_ce(), &datetime TSRMLS_CC);
php_date_obj* dateobj = UNBOX(php_date_obj, &datetime);
@@ -1184,6 +1192,9 @@ PHP_METHOD(Timestamp, toDateTime) {
zval* datetime_ptr = &datetime;
PHP_PROTO_RETVAL_ZVAL(datetime_ptr);
+#else
+ zend_error(E_USER_ERROR, "toDateTime needs date extension.");
+#endif
}
// -----------------------------------------------------------------------------