| Index: third_party/protobuf/src/google/protobuf/compiler/parser.cc
|
| diff --git a/third_party/protobuf/src/google/protobuf/compiler/parser.cc b/third_party/protobuf/src/google/protobuf/compiler/parser.cc
|
| index 90ded4de2144b254d6adf7da4c34d03abc6eb90d..09c7a2b65d1a228f004c1d3bf639fdb601f625e6 100644
|
| --- a/third_party/protobuf/src/google/protobuf/compiler/parser.cc
|
| +++ b/third_party/protobuf/src/google/protobuf/compiler/parser.cc
|
| @@ -525,7 +525,6 @@ bool Parser::Parse(io::Tokenizer* input, FileDescriptorProto* file) {
|
| SourceCodeInfo source_code_info;
|
| source_code_info_ = &source_code_info;
|
|
|
| - vector<string> top_doc_comments;
|
| if (LookingAtType(io::Tokenizer::TYPE_START)) {
|
| // Advance to first token.
|
| input_->NextWithComments(NULL, &upcoming_detached_comments_,
|
| @@ -571,6 +570,7 @@ bool Parser::Parse(io::Tokenizer* input, FileDescriptorProto* file) {
|
|
|
| input_ = NULL;
|
| source_code_info_ = NULL;
|
| + assert(file != NULL);
|
| source_code_info.Swap(file->mutable_source_code_info());
|
| return !had_errors_;
|
| }
|
| @@ -1630,6 +1630,16 @@ bool Parser::ParseOneof(OneofDescriptorProto* oneof_decl,
|
| return false;
|
| }
|
|
|
| + if (LookingAt("option")) {
|
| + LocationRecorder option_location(
|
| + oneof_location, OneofDescriptorProto::kOptionsFieldNumber);
|
| + if (!ParseOption(oneof_decl->mutable_options(), option_location,
|
| + containing_file, OPTION_STATEMENT)) {
|
| + return false;
|
| + }
|
| + continue;
|
| + }
|
| +
|
| // Print a nice error if the user accidentally tries to place a label
|
| // on an individual member of a oneof.
|
| if (LookingAt("required") ||
|
|
|