From 3e4c51f5cfc5466e40e536ffd02cac0730025c8e Mon Sep 17 00:00:00 2001 From: Jens Geyer Date: Fri, 28 Feb 2014 19:35:26 +0100 Subject: [PATCH] THRIFT-2378 service method arguments of binary type lead to uncompileable Go code Patch: Jens Geyer --- compiler/cpp/src/generate/t_go_generator.cc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/compiler/cpp/src/generate/t_go_generator.cc b/compiler/cpp/src/generate/t_go_generator.cc index 57f9cb9d..dadef5c0 100644 --- a/compiler/cpp/src/generate/t_go_generator.cc +++ b/compiler/cpp/src/generate/t_go_generator.cc @@ -1145,7 +1145,7 @@ void t_go_generator::generate_go_struct_reader(ofstream& out, } // if negative id, ensure we generate a valid method name - string field_method_prefix("readField"); + string field_method_prefix("ReadField"); if (field_id < 0) { field_method_prefix += "_"; @@ -1196,7 +1196,7 @@ void t_go_generator::generate_go_struct_reader(ofstream& out, for (f_iter = fields.begin(); f_iter != fields.end(); ++f_iter) { string field_type_name(publicize((*f_iter)->get_type()->get_name())); string field_name(publicize((*f_iter)->get_name())); - string field_method_prefix("readField"); + string field_method_prefix("ReadField"); int32_t field_id = (*f_iter)->get_key(); if (field_id < 0) { @@ -1977,8 +1977,13 @@ void t_go_generator::generate_service_remote(t_service* tservice) break; case t_base_type::TYPE_STRING: - f_remote << - indent() << "argvalue" << i << " := flag.Arg(" << flagArg << ")" << endl; + if (((t_base_type*)the_type2)->is_binary()) { + f_remote << + indent() << "argvalue" << i << " := []byte(flag.Arg(" << flagArg << "))" << endl; + } else { + f_remote << + indent() << "argvalue" << i << " := flag.Arg(" << flagArg << ")" << endl; + } break; case t_base_type::TYPE_BOOL: -- 2.17.1