Fix the undefined behavior for opensource users.

This commit is contained in:
Bo Yang 2016-06-07 11:49:40 -07:00
parent 6aa981f949
commit b60e615cba

View File

@ -298,13 +298,15 @@ void ServiceGenerator::GenerateGetPrototype(RequestOrResponse which,
" return $type$::default_instance();\n");
}
printer->Print(vars_,
printer->Print(
" default:\n"
" GOOGLE_LOG(FATAL) << \"Bad method index; this should never happen.\";\n"
" return *static_cast< ::google::protobuf::Message*>(NULL);\n"
" return *::google::protobuf::MessageFactory::generated_factory()\n"
" ->GetPrototype(method->$input_or_output$_type());\n"
" }\n"
"}\n"
"\n");
"\n",
"input_or_output", which == REQUEST ? "input" : "output");
}
void ServiceGenerator::GenerateStubMethods(io::Printer* printer) {