aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/google/protobuf/util/internal/proto_writer.cc
diff options
context:
space:
mode:
authorGravatar Feng Xiao <xiaofeng@google.com>2016-07-01 15:43:37 -0700
committerGravatar GitHub <noreply@github.com>2016-07-01 15:43:37 -0700
commitcae3b0cbb689d0ed1e5da73942a5a9705f3411b0 (patch)
tree855f5c2c2d2dd82715145401ed68d20ff025693c /src/google/protobuf/util/internal/proto_writer.cc
parent02b55d248f2fa9f24905201d1ba16a79dd20fdc8 (diff)
parent31999a3f95d8ec9f93b56b0966e2895c5205da53 (diff)
Merge pull request #1704 from lizan/json_parse_options
Add JsonParseOptions to ignore unknown fields
Diffstat (limited to 'src/google/protobuf/util/internal/proto_writer.cc')
-rw-r--r--src/google/protobuf/util/internal/proto_writer.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/google/protobuf/util/internal/proto_writer.cc b/src/google/protobuf/util/internal/proto_writer.cc
index 18cc1233..3e09c9bb 100644
--- a/src/google/protobuf/util/internal/proto_writer.cc
+++ b/src/google/protobuf/util/internal/proto_writer.cc
@@ -71,6 +71,7 @@ ProtoWriter::ProtoWriter(TypeResolver* type_resolver,
adapter_(&buffer_),
stream_(new CodedOutputStream(&adapter_)),
listener_(listener),
+ ignore_unknown_fields_(false),
invalid_depth_(0),
tracker_(new ObjectLocationTracker()) {}
@@ -88,6 +89,7 @@ ProtoWriter::ProtoWriter(const TypeInfo* typeinfo,
adapter_(&buffer_),
stream_(new CodedOutputStream(&adapter_)),
listener_(listener),
+ ignore_unknown_fields_(false),
invalid_depth_(0),
tracker_(new ObjectLocationTracker()) {}
@@ -702,7 +704,9 @@ const google::protobuf::Field* ProtoWriter::Lookup(
}
const google::protobuf::Field* field =
typeinfo_->FindField(&e->type(), unnormalized_name);
- if (field == NULL) InvalidName(unnormalized_name, "Cannot find field.");
+ if (field == NULL && !ignore_unknown_fields_) {
+ InvalidName(unnormalized_name, "Cannot find field.");
+ }
return field;
}