diff options
author | 2017-04-06 16:47:18 -0700 | |
---|---|---|
committer | 2017-04-06 16:47:18 -0700 | |
commit | ee9c7f17e953243943181bcbc84590118be6b3c6 (patch) | |
tree | 10f14f7dc9632c66d249b9bee9438fcdf77c6bc5 /src/google/protobuf/compiler/cpp/cpp_file.cc | |
parent | 21b0b3ca36dbe0954adce38626e4d36c21135982 (diff) |
Cleanup reflection objects for map entry.
Diffstat (limited to 'src/google/protobuf/compiler/cpp/cpp_file.cc')
-rw-r--r-- | src/google/protobuf/compiler/cpp/cpp_file.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/google/protobuf/compiler/cpp/cpp_file.cc b/src/google/protobuf/compiler/cpp/cpp_file.cc index 83e68c12..e0542ae8 100644 --- a/src/google/protobuf/compiler/cpp/cpp_file.cc +++ b/src/google/protobuf/compiler/cpp/cpp_file.cc @@ -751,6 +751,15 @@ void FileGenerator::GenerateBuildDescriptors(io::Printer* printer) { message_generators_[i]->GenerateShutdownCode(printer); } + if (HasDescriptorMethods(file_, options_)) { + for (int i = 0; i < message_generators_.size(); i++) { + if (!IsMapEntryMessage(message_generators_[i]->descriptor_)) continue; + printer->Print( + "delete file_level_metadata[$index$].reflection;\n", + "index", SimpleItoa(i)); + } + } + printer->Outdent(); printer->Print( "}\n\n"); |