From 5ced286cec268191c72125440ac911582f84a6b9 Mon Sep 17 00:00:00 2001 From: iproctor Date: Wed, 25 Jul 2007 18:50:50 +0000 Subject: [PATCH] Thrift: Ruby cogeden not creating exception fields properly. Summary: Generated ruby code did not give exception struct fields a class. This broke the result structs for all functions that threw exceptions. Reviewed by: mcslee Test plan: Yes Revert plan: yes git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665173 13f79535-47bb-0310-9956-ffa450edef68 --- compiler/cpp/src/generate/t_rb_generator.cc | 38 ++++++++++----------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/compiler/cpp/src/generate/t_rb_generator.cc b/compiler/cpp/src/generate/t_rb_generator.cc index bb884653..d5b26900 100644 --- a/compiler/cpp/src/generate/t_rb_generator.cc +++ b/compiler/cpp/src/generate/t_rb_generator.cc @@ -334,26 +334,26 @@ void t_rb_generator::generate_field_data(std::ofstream& out, t_type* field_type, if (!field_name.empty()) out << ", :name => '" << field_name << "'"; + + if (! field_type->is_base_type()) { + if (field_type->is_struct() || field_type->is_xception()) { + out << ", :class => " << type_name(((t_struct*)field_type)); + } else if (field_type->is_list()) { + out << ", :element => "; + generate_field_data(out, ((t_list*)field_type)->get_elem_type()); + } else if (field_type->is_map()) { + out << ", :key => "; + generate_field_data(out, ((t_map*)field_type)->get_key_type()); + out << ", :value => "; + generate_field_data(out, ((t_map*)field_type)->get_val_type()); + } else if (field_type->is_set()) { + out << ", :element => "; + generate_field_data(out, ((t_set*)field_type)->get_elem_type()); + } + } - if (! field_type->is_base_type()) { - if (field_type->is_struct()) { - out << ", :class => " << type_name(((t_struct*)field_type)); - } else if (field_type->is_list()) { - out << ", :element => "; - generate_field_data(out, ((t_list*)field_type)->get_elem_type()); - } else if (field_type->is_map()) { - out << ", :key => "; - generate_field_data(out, ((t_map*)field_type)->get_key_type()); - out << ", :value => "; - generate_field_data(out, ((t_map*)field_type)->get_val_type()); - } else if (field_type->is_set()) { - out << ", :element => "; - generate_field_data(out, ((t_set*)field_type)->get_elem_type()); - } - } - - // End of this field's defn - out << "}"; + // End of this field's defn + out << "}"; } void t_rb_generator::begin_namespace(std::ofstream& out, vector modules) { -- 2.17.1