aboutsummaryrefslogtreecommitdiff
path: root/php/ext/google/protobuf/encode_decode.c
diff options
context:
space:
mode:
authorPaul Yang <TeBoring@users.noreply.github.com>2017-11-30 12:19:50 -0800
committerGitHub <noreply@github.com>2017-11-30 12:19:50 -0800
commit74e7decbbf130485a5bc5d792fb4f9285143bce3 (patch)
tree69cfe486e2d69ecaf340b184f0b75651cfe57b43 /php/ext/google/protobuf/encode_decode.c
parentcf65a7946fb42e941708d10adbce69924c6d1ee0 (diff)
downloadprotobuf-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/google/protobuf/encode_decode.c')
-rw-r--r--php/ext/google/protobuf/encode_decode.c9
1 files changed, 9 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;
+ }
+}