aboutsummaryrefslogtreecommitdiffhomepage
path: root/ruby/ext
diff options
context:
space:
mode:
authorGravatar Zachary Anker <zach.anker@gmail.com>2018-06-26 20:27:24 -0700
committerGravatar Paul Yang <TeBoring@users.noreply.github.com>2018-06-26 20:27:24 -0700
commit70544627cb89a61652d688c53984c68013ab985e (patch)
treeb1bd65a874acd871126e8807c64c3414a1ddce40 /ruby/ext
parent74f8e24232e0d67ab79419130b5bf3a5a875593d (diff)
When initializing a message, skip a field if value is nil (#3693)
Diffstat (limited to 'ruby/ext')
-rw-r--r--ruby/ext/google/protobuf_c/message.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ruby/ext/google/protobuf_c/message.c b/ruby/ext/google/protobuf_c/message.c
index 3394825c..721c1112 100644
--- a/ruby/ext/google/protobuf_c/message.c
+++ b/ruby/ext/google/protobuf_c/message.c
@@ -256,6 +256,10 @@ int Message_initialize_kwarg(VALUE key, VALUE val, VALUE _self) {
"Unknown field name '%s' in initialization map entry.", name);
}
+ if (TYPE(val) == T_NIL) {
+ return 0;
+ }
+
if (is_map_field(f)) {
VALUE map;