diff options
author | Joshua Haberman <jhaberman@gmail.com> | 2018-12-13 10:55:26 -0800 |
---|---|---|
committer | Joshua Haberman <jhaberman@gmail.com> | 2018-12-13 10:55:26 -0800 |
commit | e2c2121f20bb8e90830f11d562e19d7244a14a5b (patch) | |
tree | da27bd90632ff573d2e755a6b639fcf6bb04cf1c /upb/def.c | |
parent | 101aeba0fb7522880e2164c733c0218293384f50 (diff) |
Use some hazzers in def.c.
Diffstat (limited to 'upb/def.c')
-rw-r--r-- | upb/def.c | 15 |
1 files changed, 9 insertions, 6 deletions
@@ -1133,7 +1133,7 @@ static bool create_fielddef( upb_alloc *alloc = ctx->alloc; upb_fielddef *f; const google_protobuf_FieldOptions *options; - upb_stringview defaultval, name; + upb_stringview name; upb_value packed_v = pack_def(f, UPB_DEFTYPE_FIELD); upb_value v = upb_value_constptr(f); const char *full_name; @@ -1220,17 +1220,20 @@ static bool create_fielddef( f->oneof = NULL; } - defaultval = google_protobuf_FieldDescriptorProto_default_value(field_proto); - - if (defaultval.data) { + if (google_protobuf_FieldDescriptorProto_has_default_value(field_proto)) { + upb_stringview defaultval = + google_protobuf_FieldDescriptorProto_default_value(field_proto); CHK(parse_default(ctx, defaultval.data, defaultval.size, f)); } - options = google_protobuf_FieldDescriptorProto_options(field_proto); - if (options) { + if (google_protobuf_FieldDescriptorProto_has_options(field_proto)) { + options = google_protobuf_FieldDescriptorProto_options(field_proto); f->lazy_ = google_protobuf_FieldOptions_lazy(options); f->packed_ = google_protobuf_FieldOptions_packed(options); + } else { + f->lazy_ = false; + f->packed_ = false; } return true; |