aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/google/protobuf/compiler/cpp/cpp_file.cc
diff options
context:
space:
mode:
authorGravatar Julien Brianceau <jbriance@cisco.com>2016-12-20 23:01:06 +0100
committerGravatar Julien Brianceau <jbriance@cisco.com>2016-12-21 22:48:58 +0100
commit15a15e336b0295abaf3e06adc9c32807455a8368 (patch)
tree62b684987b000d3388fe2b0e6e14a0522412cf56 /src/google/protobuf/compiler/cpp/cpp_file.cc
parentd948b66d4f4f41e438981f49ad4668ab0ba6ab0a (diff)
Init index_in_metadata_ without condition
Chromium MemorySanitizer (MSan) reports use-of-uninitialized-value of index_in_metadata_ attribute from EnumGenerator class. Fix these warnings by initializing these attributes without condition.
Diffstat (limited to 'src/google/protobuf/compiler/cpp/cpp_file.cc')
-rw-r--r--src/google/protobuf/compiler/cpp/cpp_file.cc21
1 files changed, 12 insertions, 9 deletions
diff --git a/src/google/protobuf/compiler/cpp/cpp_file.cc b/src/google/protobuf/compiler/cpp/cpp_file.cc
index d8fda59c..9cfd6ec6 100644
--- a/src/google/protobuf/compiler/cpp/cpp_file.cc
+++ b/src/google/protobuf/compiler/cpp/cpp_file.cc
@@ -289,6 +289,18 @@ void FileGenerator::GenerateSource(io::Printer* printer) {
"classname", message_generators_[i]->classname_);
}
+ for (int i = 0; i < message_generators_.size(); i++) {
+ message_generators_[i]->index_in_metadata_ = i;
+ }
+ for (int i = 0; i < enum_generators_.size(); i++) {
+ enum_generators_[i]->index_in_metadata_ = i;
+ }
+ if (HasGenericServices(file_, options_)) {
+ for (int i = 0; i < service_generators_.size(); i++) {
+ service_generators_[i]->index_in_metadata_ = i;
+ }
+ }
+
if (HasDescriptorMethods(file_, options_)) {
printer->Print(
"\n"
@@ -313,17 +325,8 @@ void FileGenerator::GenerateSource(io::Printer* printer) {
}
for (int i = 0; i < message_generators_.size(); i++) {
- message_generators_[i]->index_in_metadata_ = i;
message_generators_[i]->GenerateDescriptorDeclarations(printer);
}
- for (int i = 0; i < enum_generators_.size(); i++) {
- enum_generators_[i]->index_in_metadata_ = i;
- }
- if (HasGenericServices(file_, options_)) {
- for (int i = 0; i < service_generators_.size(); i++) {
- service_generators_[i]->index_in_metadata_ = i;
- }
- }
printer->Print(
"\n"