diff options
author | Paul Yang <TeBoring@users.noreply.github.com> | 2017-11-30 12:19:50 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-30 12:19:50 -0800 |
commit | 74e7decbbf130485a5bc5d792fb4f9285143bce3 (patch) | |
tree | 69cfe486e2d69ecaf340b184f0b75651cfe57b43 /php/ext | |
parent | cf65a7946fb42e941708d10adbce69924c6d1ee0 (diff) | |
download | protobuf-74e7decbbf130485a5bc5d792fb4f9285143bce3.tar.gz protobuf-74e7decbbf130485a5bc5d792fb4f9285143bce3.tar.bz2 protobuf-74e7decbbf130485a5bc5d792fb4f9285143bce3.zip |
Provide discardUnknonwnFields API in php (#3976)
* Provide discardUnknownFields API in php implementation
* Provide discardUnknownFields API in php c extension.
Diffstat (limited to 'php/ext')
-rw-r--r-- | php/ext/google/protobuf/encode_decode.c | 9 | ||||
-rw-r--r-- | php/ext/google/protobuf/message.c | 1 | ||||
-rw-r--r-- | php/ext/google/protobuf/protobuf.h | 1 |
3 files changed, 11 insertions, 0 deletions
diff --git a/php/ext/google/protobuf/encode_decode.c b/php/ext/google/protobuf/encode_decode.c index 7e2b3ae6..ae5a61f5 100644 --- a/php/ext/google/protobuf/encode_decode.c +++ b/php/ext/google/protobuf/encode_decode.c @@ -1614,3 +1614,12 @@ PHP_METHOD(Message, mergeFromJsonString) { stackenv_uninit(&se); } } + +PHP_METHOD(Message, discardUnknownFields) { + MessageHeader* msg = UNBOX(MessageHeader, getThis()); + stringsink* unknown = DEREF(message_data(msg), 0, stringsink*); + if (unknown != NULL) { + stringsink_uninit(unknown); + DEREF(message_data(msg), 0, stringsink*) = NULL; + } +} diff --git a/php/ext/google/protobuf/message.c b/php/ext/google/protobuf/message.c index 3fce2c17..6db010c5 100644 --- a/php/ext/google/protobuf/message.c +++ b/php/ext/google/protobuf/message.c @@ -42,6 +42,7 @@ static void hex_to_binary(const char* hex, char** binary, int* binary_len); static zend_function_entry message_methods[] = { PHP_ME(Message, clear, NULL, ZEND_ACC_PUBLIC) + PHP_ME(Message, discardUnknownFields, NULL, ZEND_ACC_PUBLIC) PHP_ME(Message, serializeToString, NULL, ZEND_ACC_PUBLIC) PHP_ME(Message, mergeFromString, NULL, ZEND_ACC_PUBLIC) PHP_ME(Message, serializeToJsonString, NULL, ZEND_ACC_PUBLIC) diff --git a/php/ext/google/protobuf/protobuf.h b/php/ext/google/protobuf/protobuf.h index 967b21f1..ac42e714 100644 --- a/php/ext/google/protobuf/protobuf.h +++ b/php/ext/google/protobuf/protobuf.h @@ -969,6 +969,7 @@ PHP_METHOD(Message, serializeToString); PHP_METHOD(Message, mergeFromString); PHP_METHOD(Message, serializeToJsonString); PHP_METHOD(Message, mergeFromJsonString); +PHP_METHOD(Message, discardUnknownFields); // ----------------------------------------------------------------------------- // Type check / conversion. |