diff options
author | 2009-10-30 22:02:17 +0000 | |
---|---|---|
committer | 2009-10-30 22:02:17 +0000 | |
commit | 573989f7828809e8fe615a1ee9d9657a379958d9 (patch) | |
tree | 83d5005b7d500859fac873f3fb7433e6a397b6e3 /src/google/protobuf/compiler/cpp/cpp_message.cc | |
parent | 1a4193c2cbf1b076384363de0394a14637402643 (diff) |
Explicitly call superclass constructor in generated code to avoid pedantic warning. Based on patch from Oleg Smolsky.
Diffstat (limited to 'src/google/protobuf/compiler/cpp/cpp_message.cc')
-rw-r--r-- | src/google/protobuf/compiler/cpp/cpp_message.cc | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/google/protobuf/compiler/cpp/cpp_message.cc b/src/google/protobuf/compiler/cpp/cpp_message.cc index ae243dd9..eb836418 100644 --- a/src/google/protobuf/compiler/cpp/cpp_message.cc +++ b/src/google/protobuf/compiler/cpp/cpp_message.cc @@ -833,12 +833,17 @@ GenerateSharedDestructorCode(io::Printer* printer) { void MessageGenerator:: GenerateStructors(io::Printer* printer) { + string superclass = HasDescriptorMethods(descriptor_->file()) ? + "Message" : "MessageLite"; + // Generate the default constructor. printer->Print( - "$classname$::$classname$() {\n" + "$classname$::$classname$()\n" + " : $superclass$() {\n" " SharedCtor();\n" "}\n", - "classname", classname_); + "classname", classname_, + "superclass", superclass); printer->Print( "\n" @@ -868,12 +873,14 @@ GenerateStructors(io::Printer* printer) { // Generate the copy constructor. printer->Print( - "$classname$::$classname$(const $classname$& from) {\n" + "$classname$::$classname$(const $classname$& from)\n" + " : $superclass$() {\n" " SharedCtor();\n" " MergeFrom(from);\n" "}\n" "\n", - "classname", classname_); + "classname", classname_, + "superclass", superclass); // Generate the shared constructor code. GenerateSharedConstructorCode(printer); |