From b547141797f17159fdb61abfb22e817b121fde8f Mon Sep 17 00:00:00 2001 From: Christian Lavoie Date: Thu, 27 Jan 2011 21:05:45 +0000 Subject: [PATCH] Apply THRIFT-993's patch from Rich Salz (reverting the oneway caching): (THRIFT-993) Some improvements in C++ stubs for oneway operations git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1064303 13f79535-47bb-0310-9956-ffa450edef68 --- compiler/cpp/src/generate/t_cpp_generator.cc | 23 ++++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/compiler/cpp/src/generate/t_cpp_generator.cc b/compiler/cpp/src/generate/t_cpp_generator.cc index 4ee9d938..d6ebc32d 100644 --- a/compiler/cpp/src/generate/t_cpp_generator.cc +++ b/compiler/cpp/src/generate/t_cpp_generator.cc @@ -2794,8 +2794,11 @@ void t_cpp_generator::generate_process_function(t_service* tservice, } out << "void " << tservice->get_name() << "Processor" << class_suffix << "::" << - "process_" << tfunction->get_name() << "(int32_t seqid, " << - prot_type << "* iprot, " << prot_type << "* oprot, void* callContext)" << endl; + "process_" << tfunction->get_name() << "(" << + "int32_t" << (tfunction->is_oneway() ? ", " : " seqid, ") << + prot_type << "* iprot, " << + prot_type << "*" << (tfunction->is_oneway() ? ", " : " oprot, ") + << "void* callContext)" << endl; scope_up(out); if (gen_templates_ && !specialized) { @@ -2882,16 +2885,12 @@ void t_cpp_generator::generate_process_function(t_service* tservice, if (!tfunction->is_oneway()) { for (x_iter = xceptions.begin(); x_iter != xceptions.end(); ++x_iter) { out << " catch (" << type_name((*x_iter)->get_type()) << " &" << (*x_iter)->get_name() << ") {" << endl; - if (!tfunction->is_oneway()) { - indent_up(); - out << - indent() << "result." << (*x_iter)->get_name() << " = " << (*x_iter)->get_name() << ";" << endl << - indent() << "result.__isset." << (*x_iter)->get_name() << " = true;" << endl; - indent_down(); - out << indent() << "}"; - } else { - out << "}"; - } + indent_up(); + out << + indent() << "result." << (*x_iter)->get_name() << " = " << (*x_iter)->get_name() << ";" << endl << + indent() << "result.__isset." << (*x_iter)->get_name() << " = true;" << endl; + indent_down(); + out << indent() << "}"; } } -- 2.17.1