You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by je...@apache.org on 2017/03/26 17:56:02 UTC
thrift git commit: THRIFT-4136 Align is_binary() method with
is_string() to simplify those checks Client: Compiler (general) Patch: Jens
Geyer
Repository: thrift
Updated Branches:
refs/heads/master 147c2849a -> 971d07780
THRIFT-4136 Align is_binary() method with is_string() to simplify those checks
Client: Compiler (general)
Patch: Jens Geyer
This closes #1221
Project: http://git-wip-us.apache.org/repos/asf/thrift/repo
Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/971d0778
Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/971d0778
Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/971d0778
Branch: refs/heads/master
Commit: 971d077807d4497ff841519103577de52fbcd3a1
Parents: 147c284
Author: Jens Geyer <je...@apache.org>
Authored: Sun Mar 26 15:54:30 2017 +0200
Committer: Jens Geyer <je...@apache.org>
Committed: Sun Mar 26 19:54:50 2017 +0200
----------------------------------------------------------------------
.../cpp/src/thrift/generate/t_as3_generator.cc | 6 +--
.../src/thrift/generate/t_c_glib_generator.cc | 6 +--
.../src/thrift/generate/t_cocoa_generator.cc | 6 +--
.../cpp/src/thrift/generate/t_cpp_generator.cc | 4 +-
.../src/thrift/generate/t_csharp_generator.cc | 6 +--
.../cpp/src/thrift/generate/t_d_generator.cc | 4 +-
.../cpp/src/thrift/generate/t_dart_generator.cc | 6 +--
.../src/thrift/generate/t_delphi_generator.cc | 6 +--
.../cpp/src/thrift/generate/t_go_generator.cc | 22 +++++------
.../cpp/src/thrift/generate/t_gv_generator.cc | 2 +-
.../cpp/src/thrift/generate/t_haxe_generator.cc | 10 ++---
.../cpp/src/thrift/generate/t_hs_generator.cc | 12 +++---
.../cpp/src/thrift/generate/t_html_generator.cc | 2 +-
.../cpp/src/thrift/generate/t_java_generator.cc | 41 +++++++++-----------
.../src/thrift/generate/t_javame_generator.cc | 12 +++---
.../cpp/src/thrift/generate/t_js_generator.cc | 4 +-
.../src/thrift/generate/t_netcore_generator.cc | 6 +--
.../cpp/src/thrift/generate/t_py_generator.cc | 6 +--
compiler/cpp/src/thrift/parse/t_type.h | 1 +
19 files changed, 79 insertions(+), 83 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/thrift/blob/971d0778/compiler/cpp/src/thrift/generate/t_as3_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/generate/t_as3_generator.cc b/compiler/cpp/src/thrift/generate/t_as3_generator.cc
index 5ae3f91..fc92de9 100644
--- a/compiler/cpp/src/thrift/generate/t_as3_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_as3_generator.cc
@@ -1251,7 +1251,7 @@ void t_as3_generator::generate_as3_struct_tostring(ofstream& out,
indent_up();
}
- if (field->get_type()->is_base_type() && ((t_base_type*)(field->get_type()))->is_binary()) {
+ if (field->get_type()->is_binary()) {
indent(out) << " ret += \"BINARY\";" << endl;
} else if (field->get_type()->is_enum()) {
indent(out) << "var " << field->get_name()
@@ -1984,7 +1984,7 @@ void t_as3_generator::generate_deserialize_field(ofstream& out, t_field* tfield,
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "readBinary();";
} else {
out << "readString();";
@@ -2168,7 +2168,7 @@ void t_as3_generator::generate_serialize_field(ofstream& out, t_field* tfield, s
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "writeBinary(" << name << ");";
} else {
out << "writeString(" << name << ");";
http://git-wip-us.apache.org/repos/asf/thrift/blob/971d0778/compiler/cpp/src/thrift/generate/t_c_glib_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/generate/t_c_glib_generator.cc b/compiler/cpp/src/thrift/generate/t_c_glib_generator.cc
index 7d4818e..a7beca7 100644
--- a/compiler/cpp/src/thrift/generate/t_c_glib_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_c_glib_generator.cc
@@ -3734,7 +3734,7 @@ void t_c_glib_generator::generate_serialize_field(ofstream& out,
out << "double (protocol, " << name;
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "binary (protocol, " << name << " ? ((GByteArray *) " << name << ")->data : NULL, "
<< name << " ? ((GByteArray *) " << name << ")->len : 0";
} else {
@@ -4010,7 +4010,7 @@ void t_c_glib_generator::generate_deserialize_field(ofstream& out,
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "binary (protocol, &data, &len";
} else {
out << "string (protocol, &" << name;
@@ -4042,7 +4042,7 @@ void t_c_glib_generator::generate_deserialize_field(ofstream& out,
<< endl;
// load the byte array with the data
- if (tbase == t_base_type::TYPE_STRING && ((t_base_type*)type)->is_binary()) {
+ if (tbase == t_base_type::TYPE_STRING && type->is_binary()) {
indent(out) << name << " = g_byte_array_new();" << endl;
indent(out) << "g_byte_array_append (" << name << ", (guint8 *) data, (guint) len);" << endl;
indent(out) << "g_free (data);" << endl;
http://git-wip-us.apache.org/repos/asf/thrift/blob/971d0778/compiler/cpp/src/thrift/generate/t_cocoa_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/generate/t_cocoa_generator.cc b/compiler/cpp/src/thrift/generate/t_cocoa_generator.cc
index eba94c0..c2f09e8 100644
--- a/compiler/cpp/src/thrift/generate/t_cocoa_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_cocoa_generator.cc
@@ -2174,7 +2174,7 @@ void t_cocoa_generator::generate_deserialize_field(ofstream& out,
throw "compiler error: cannot serialize void field in a struct: " + tfield->get_name();
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "readBinary:&" << fieldName << " error: __thriftError]";
} else {
out << "readString:&" << fieldName << " error: __thriftError]";
@@ -2423,7 +2423,7 @@ void t_cocoa_generator::generate_serialize_field(ofstream& out, t_field* tfield,
throw "compiler error: cannot serialize void field in a struct: " + fieldName;
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "writeBinary: " << fieldName << " error: __thriftError]";
} else {
out << "writeString: " << fieldName << " error: __thriftError]";
@@ -2824,7 +2824,7 @@ string t_cocoa_generator::render_const_value(ostream& out,
case t_base_type::TYPE_STRING:
// We must handle binary constant but the syntax of IDL defines
// nothing about binary constant.
- // if ((t_base_type*)type)->is_binary())
+ // if type->is_binary())
// // binary code
render << "@\"" << get_escaped_string(value) << '"';
break;
http://git-wip-us.apache.org/repos/asf/thrift/blob/971d0778/compiler/cpp/src/thrift/generate/t_cpp_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/generate/t_cpp_generator.cc b/compiler/cpp/src/thrift/generate/t_cpp_generator.cc
index e484afa..0518ec8 100644
--- a/compiler/cpp/src/thrift/generate/t_cpp_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_cpp_generator.cc
@@ -3734,7 +3734,7 @@ void t_cpp_generator::generate_deserialize_field(ofstream& out,
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "readBinary(" << name << ");";
} else {
out << "readString(" << name << ");";
@@ -3941,7 +3941,7 @@ void t_cpp_generator::generate_serialize_field(ofstream& out,
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "writeBinary(" << name << ");";
} else {
out << "writeString(" << name << ");";
http://git-wip-us.apache.org/repos/asf/thrift/blob/971d0778/compiler/cpp/src/thrift/generate/t_csharp_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/generate/t_csharp_generator.cc b/compiler/cpp/src/thrift/generate/t_csharp_generator.cc
index ae3c48b..57c3c5b 100644
--- a/compiler/cpp/src/thrift/generate/t_csharp_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_csharp_generator.cc
@@ -1350,7 +1350,7 @@ void t_csharp_generator::generate_csharp_struct_equals(ofstream& out, t_struct*
<< normalize_name((*f_iter)->get_name()) << ") || (";
}
t_type* ttype = (*f_iter)->get_type();
- if (ttype->is_container() || (ttype->is_base_type() && (((t_base_type*)ttype)->is_binary()))) {
+ if (ttype->is_container() || ttype->is_binary()) {
out << "TCollections.Equals(";
} else {
out << "System.Object.Equals(";
@@ -2468,7 +2468,7 @@ void t_csharp_generator::generate_deserialize_field(ofstream& out,
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "ReadBinary();";
} else {
out << "ReadString();";
@@ -2645,7 +2645,7 @@ void t_csharp_generator::generate_serialize_field(ofstream& out,
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "WriteBinary(";
} else {
out << "WriteString(";
http://git-wip-us.apache.org/repos/asf/thrift/blob/971d0778/compiler/cpp/src/thrift/generate/t_d_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/generate/t_d_generator.cc b/compiler/cpp/src/thrift/generate/t_d_generator.cc
index 8192549..b602e0d 100644
--- a/compiler/cpp/src/thrift/generate/t_d_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_d_generator.cc
@@ -381,8 +381,8 @@ private:
out << indent() << "// Your implementation goes here." << endl << indent() << "writeln(\""
<< (*f_iter)->get_name() << " called\");" << endl;
- t_base_type* rt = (t_base_type*)(*f_iter)->get_returntype();
- if (!rt->is_void()) {
+ t_type* rt = (*f_iter)->get_returntype();
+ if (!rt->is_void()) {
indent(out) << "return typeof(return).init;" << endl;
}
http://git-wip-us.apache.org/repos/asf/thrift/blob/971d0778/compiler/cpp/src/thrift/generate/t_dart_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/generate/t_dart_generator.cc b/compiler/cpp/src/thrift/generate/t_dart_generator.cc
index 19bbb7b..f7bd1c2 100644
--- a/compiler/cpp/src/thrift/generate/t_dart_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_dart_generator.cc
@@ -1292,7 +1292,7 @@ void t_dart_generator::generate_dart_struct_tostring(ofstream& out,
scope_up(out);
}
- if (field->get_type()->is_base_type() && ((t_base_type*)(field->get_type()))->is_binary()) {
+ if (field->get_type()->is_binary()) {
indent(out) << "ret.write(\"BINARY\");" << endl;
} else if (field->get_type()->is_enum()) {
indent(out) << "String " << field_name << "_name = "
@@ -1809,7 +1809,7 @@ void t_dart_generator::generate_deserialize_field(ofstream& out, t_field* tfield
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "readBinary();";
} else {
out << "readString();";
@@ -1991,7 +1991,7 @@ void t_dart_generator::generate_serialize_field(ofstream& out, t_field* tfield,
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "writeBinary(" << name << ");";
} else {
out << "writeString(" << name << ");";
http://git-wip-us.apache.org/repos/asf/thrift/blob/971d0778/compiler/cpp/src/thrift/generate/t_delphi_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/generate/t_delphi_generator.cc b/compiler/cpp/src/thrift/generate/t_delphi_generator.cc
index 8b1a445..d238566 100644
--- a/compiler/cpp/src/thrift/generate/t_delphi_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_delphi_generator.cc
@@ -2541,7 +2541,7 @@ void t_delphi_generator::generate_deserialize_field(ostream& out,
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
if (ansistr_binary_) {
out << "ReadAnsiString();";
} else {
@@ -2742,7 +2742,7 @@ void t_delphi_generator::generate_serialize_field(ostream& out,
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
if (ansistr_binary_) {
out << "WriteAnsiString(";
} else {
@@ -3268,7 +3268,7 @@ string t_delphi_generator::empty_value(t_type* type) {
case t_base_type::TYPE_VOID:
return "0";
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
if (ansistr_binary_) {
return "''";
} else {
http://git-wip-us.apache.org/repos/asf/thrift/blob/971d0778/compiler/cpp/src/thrift/generate/t_go_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/generate/t_go_generator.cc b/compiler/cpp/src/thrift/generate/t_go_generator.cc
index 088f3ae..c7f5279 100644
--- a/compiler/cpp/src/thrift/generate/t_go_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_go_generator.cc
@@ -329,7 +329,7 @@ bool t_go_generator::omit_initialization(t_field* tfield) {
throw "";
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
//[]byte are always inline
return false;
}
@@ -357,7 +357,7 @@ bool t_go_generator::omit_initialization(t_field* tfield) {
static bool type_need_reference(t_type* type) {
type = type->get_true_type();
if (type->is_map() || type->is_set() || type->is_list() || type->is_struct()
- || type->is_xception() || (type->is_string() && ((t_base_type*)type)->is_binary())) {
+ || type->is_xception() || type->is_binary()) {
return false;
}
return true;
@@ -387,7 +387,7 @@ bool t_go_generator::is_pointer_field(t_field* tfield, bool in_container_value)
throw "";
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
//[]byte are always inline
return false;
}
@@ -1064,7 +1064,7 @@ string t_go_generator::render_const_value(t_type* type, t_const_value* value, co
switch (tbase) {
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "[]byte(\"" << get_escaped_string(value) << "\")";
} else {
out << '"' << get_escaped_string(value) << '"';
@@ -1405,7 +1405,7 @@ void t_go_generator::generate_isset_helpers(ofstream& out,
<< endl;
indent_up();
t_type* ttype = (*f_iter)->get_type()->get_true_type();
- bool is_byteslice = ttype->is_base_type() && ((t_base_type*)ttype)->is_binary();
+ bool is_byteslice = ttype->is_binary();
bool compare_to_nil_only = ttype->is_set() || ttype->is_list() || ttype->is_map()
|| (is_byteslice && !(*f_iter)->get_value());
if (is_pointer_field(*f_iter) || compare_to_nil_only) {
@@ -2336,7 +2336,7 @@ void t_go_generator::generate_service_remote(t_service* tservice) {
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)the_type2)->is_binary()) {
+ if (the_type2->is_binary()) {
f_remote << indent() << "argvalue" << i << " := []byte(flag.Arg(" << flagArg << "))"
<< endl;
} else {
@@ -2868,7 +2868,7 @@ void t_go_generator::generate_deserialize_field(ofstream& out,
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary() && !inkey) {
+ if (type->is_binary() && !inkey) {
out << "ReadBinary()";
} else {
out << "ReadString()";
@@ -3117,7 +3117,7 @@ void t_go_generator::generate_serialize_field(ofstream& out,
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary() && !inkey) {
+ if (type->is_binary() && !inkey) {
out << "WriteBinary(" << name << ")";
} else {
out << "WriteString(string(" << name << "))";
@@ -3508,7 +3508,7 @@ string t_go_generator::type_to_enum(t_type* type) {
case t_base_type::TYPE_STRING:
/* this is wrong, binary is still a string type internally
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
return "thrift.BINARY";
}
*/
@@ -3562,7 +3562,7 @@ string t_go_generator::type_to_go_key_type(t_type* type) {
throw "Cannot produce a valid type for a Go map key: " + type_to_go_type(type) + " - aborting.";
}
- if (resolved_type->is_string() && ((t_base_type*)resolved_type)->is_binary())
+ if (resolved_type->is_binary())
return "string";
return type_to_go_type(type);
@@ -3595,7 +3595,7 @@ string t_go_generator::type_to_go_type_with_opt(t_type* type,
throw "";
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
return maybe_pointer + "[]byte";
}
http://git-wip-us.apache.org/repos/asf/thrift/blob/971d0778/compiler/cpp/src/thrift/generate/t_gv_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/generate/t_gv_generator.cc b/compiler/cpp/src/thrift/generate/t_gv_generator.cc
index 72b7c82..14b5377 100644
--- a/compiler/cpp/src/thrift/generate/t_gv_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_gv_generator.cc
@@ -225,7 +225,7 @@ void t_gv_generator::print_type(t_type* ttype, string struct_field_ref) {
f_out_ << "\\>";
}
} else if (ttype->is_base_type()) {
- f_out_ << (((t_base_type*)ttype)->is_binary() ? "binary" : ttype->get_name());
+ f_out_ << (ttype->is_binary() ? "binary" : ttype->get_name());
} else {
f_out_ << ttype->get_name();
edges.push_back(struct_field_ref + " -> " + ttype->get_name());
http://git-wip-us.apache.org/repos/asf/thrift/blob/971d0778/compiler/cpp/src/thrift/generate/t_haxe_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/generate/t_haxe_generator.cc b/compiler/cpp/src/thrift/generate/t_haxe_generator.cc
index e7be1a5..f5d292f 100644
--- a/compiler/cpp/src/thrift/generate/t_haxe_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_haxe_generator.cc
@@ -1304,7 +1304,7 @@ void t_haxe_generator::generate_haxe_struct_tostring(ofstream& out, t_struct* ts
indent_up();
}
- if (field->get_type()->is_base_type() && ((t_base_type*)(field->get_type()))->is_binary()) {
+ if (field->get_type()->is_binary()) {
indent(out) << " ret += \"BINARY\";" << endl;
} else if (field->get_type()->is_enum()) {
indent(out) << "var " << field->get_name()
@@ -2200,7 +2200,7 @@ void t_haxe_generator::generate_deserialize_field(ofstream& out, t_field* tfield
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "readBinary();";
} else {
out << "readString();";
@@ -2384,7 +2384,7 @@ void t_haxe_generator::generate_serialize_field(ofstream& out, t_field* tfield,
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "writeBinary(" << name << ");";
} else {
out << "writeString(" << name << ");";
@@ -2553,7 +2553,7 @@ string t_haxe_generator::type_name(t_type* ttype, bool in_container, bool in_ini
t_base_type::t_base tbase = ((t_base_type*)tkey)->get_base();
switch (tbase) {
case t_base_type::TYPE_STRING:
- if (!(((t_base_type*)tkey)->is_binary())) {
+ if (!(tkey->is_binary())) {
return "StringMap< " + type_name(tval) + ">";
}
case t_base_type::TYPE_I8:
@@ -2578,7 +2578,7 @@ string t_haxe_generator::type_name(t_type* ttype, bool in_container, bool in_ini
t_base_type::t_base tbase = ((t_base_type*)tkey)->get_base();
switch (tbase) {
case t_base_type::TYPE_STRING:
- if (!(((t_base_type*)tkey)->is_binary())) {
+ if (!(tkey->is_binary())) {
return "StringSet";
}
case t_base_type::TYPE_I8:
http://git-wip-us.apache.org/repos/asf/thrift/blob/971d0778/compiler/cpp/src/thrift/generate/t_hs_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/generate/t_hs_generator.cc b/compiler/cpp/src/thrift/generate/t_hs_generator.cc
index a3ccd8d..29c0816 100644
--- a/compiler/cpp/src/thrift/generate/t_hs_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_hs_generator.cc
@@ -1369,11 +1369,11 @@ void t_hs_generator::generate_deserialize_type(ofstream& out, t_type* type, stri
} else if (type->is_base_type()) {
t_base_type::t_base tbase = ((t_base_type*)type)->get_base();
- if (tbase == t_base_type::TYPE_STRING && !((t_base_type*)type)->is_binary()) {
+ if (tbase == t_base_type::TYPE_STRING && !type->is_binary()) {
out << "E.decodeUtf8 ";
}
out << val;
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
// Since wire type of binary is the same as string, we actually receive T.TString not
// T.TBinary
out << "; T.TString " << val << " -> " << val;
@@ -1448,7 +1448,7 @@ void t_hs_generator::generate_serialize_type(ofstream& out, t_type* type, string
if (type->is_base_type()) {
t_base_type::t_base tbase = ((t_base_type*)type)->get_base();
out << type_to_constructor(type) << " ";
- if (tbase == t_base_type::TYPE_STRING && !((t_base_type*)type)->is_binary()) {
+ if (tbase == t_base_type::TYPE_STRING && !type->is_binary()) {
out << "$ E.encodeUtf8 ";
}
out << name;
@@ -1550,7 +1550,7 @@ string t_hs_generator::type_to_enum(t_type* type) {
case t_base_type::TYPE_VOID:
return "T.T_VOID";
case t_base_type::TYPE_STRING:
- return ((t_base_type*)type)->is_binary() ? "T.T_BINARY" : "T.T_STRING";
+ return type->is_binary() ? "T.T_BINARY" : "T.T_STRING";
case t_base_type::TYPE_BOOL:
return "T.T_BOOL";
case t_base_type::TYPE_I8:
@@ -1645,7 +1645,7 @@ string t_hs_generator::render_hs_type(t_type* type, bool needs_parens) {
case t_base_type::TYPE_VOID:
return "()";
case t_base_type::TYPE_STRING:
- return (((t_base_type*)type)->is_binary() ? "LBS.ByteString" : "LT.Text");
+ return (type->is_binary() ? "LBS.ByteString" : "LT.Text");
case t_base_type::TYPE_BOOL:
return "P.Bool";
case t_base_type::TYPE_I8:
@@ -1698,7 +1698,7 @@ string t_hs_generator::type_to_constructor(t_type* type) {
case t_base_type::TYPE_VOID:
throw "invalid type: T_VOID";
case t_base_type::TYPE_STRING:
- return ((t_base_type*)type)->is_binary() ? "T.TBinary" : "T.TString";
+ return type->is_binary() ? "T.TBinary" : "T.TString";
case t_base_type::TYPE_BOOL:
return "T.TBool";
case t_base_type::TYPE_I8:
http://git-wip-us.apache.org/repos/asf/thrift/blob/971d0778/compiler/cpp/src/thrift/generate/t_html_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/generate/t_html_generator.cc b/compiler/cpp/src/thrift/generate/t_html_generator.cc
index ec78e10..a7fa13c 100644
--- a/compiler/cpp/src/thrift/generate/t_html_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_html_generator.cc
@@ -691,7 +691,7 @@ int t_html_generator::print_type(t_type* ttype) {
f_out_ << ">";
}
} else if (ttype->is_base_type()) {
- f_out_ << (((t_base_type*)ttype)->is_binary() ? "binary" : ttype->get_name());
+ f_out_ << (ttype->is_binary() ? "binary" : ttype->get_name());
len = ttype->get_name().size();
} else {
string prog_name = ttype->get_program()->get_name();
http://git-wip-us.apache.org/repos/asf/thrift/blob/971d0778/compiler/cpp/src/thrift/generate/t_java_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/generate/t_java_generator.cc b/compiler/cpp/src/thrift/generate/t_java_generator.cc
index 593eda6..db70dc5 100644
--- a/compiler/cpp/src/thrift/generate/t_java_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_java_generator.cc
@@ -874,7 +874,7 @@ void t_java_generator::generate_union_constructor(ofstream& out, t_struct* tstru
indent(out) << " return x;" << endl;
indent(out) << "}" << endl << endl;
- if (type->is_base_type() && ((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
indent(out) << "public static " << type_name(tstruct) << " " << (*m_iter)->get_name()
<< "(byte[] value) {" << endl;
indent(out) << " " << type_name(tstruct) << " x = new " << type_name(tstruct) << "();"
@@ -905,7 +905,7 @@ void t_java_generator::generate_union_getters_and_setters(ofstream& out, t_struc
bool is_deprecated = this->is_deprecated(field->annotations_);
generate_java_doc(out, field);
- if (type->is_base_type() && ((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
if (is_deprecated) {
indent(out) << "@Deprecated" << endl;
}
@@ -952,7 +952,7 @@ void t_java_generator::generate_union_getters_and_setters(ofstream& out, t_struc
out << endl;
generate_java_doc(out, field);
- if (type->is_base_type() && ((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
if (is_deprecated) {
indent(out) << "@Deprecated" << endl;
}
@@ -1488,7 +1488,7 @@ void t_java_generator::generate_java_struct_definition(ofstream& out,
for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) {
if ((*m_iter)->get_req() != t_field::T_OPTIONAL) {
t_type* type = get_true_type((*m_iter)->get_type());
- if (type->is_base_type() && ((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
indent(out) << "this." << (*m_iter)->get_name()
<< " = org.apache.thrift.TBaseHelper.copyBinary(" << (*m_iter)->get_name()
<< ");" << endl;
@@ -1642,7 +1642,7 @@ void t_java_generator::generate_java_struct_parcelable(ofstream& out, t_struct*
} else if (t->is_map()) {
indent(out) << "out.writeMap(" << name << ");" << endl;
} else if (t->is_base_type()) {
- if (((t_base_type*)t)->is_binary()) {
+ if (t->is_binary()) {
indent(out) << "out.writeInt(" << name << "!=null ? 1 : 0);" << endl;
indent(out) << "if(" << name << " != null) { " << endl;
indent_up();
@@ -1853,7 +1853,7 @@ void t_java_generator::generate_java_struct_equality(ofstream& out, t_struct* ts
<< "this_present_" << name << " && that_present_" << name << "))" << endl << indent()
<< " return false;" << endl;
- if (t->is_base_type() && ((t_base_type*)t)->is_binary()) {
+ if (t->is_binary()) {
unequal = "!this." + name + ".equals(that." + name + ")";
} else if (can_be_null) {
unequal = "!this." + name + ".equals(that." + name + ")";
@@ -2094,7 +2094,7 @@ void t_java_generator::generate_reflection_setters(ostringstream& out,
t_type* type,
string field_name,
string cap_name) {
- const bool is_binary = type->is_base_type() && ((t_base_type*)type)->is_binary();
+ const bool is_binary = type->is_binary();
indent(out) << "case " << constant_name(field_name) << ":" << endl;
indent_up();
indent(out) << "if (value == null) {" << endl;
@@ -2327,7 +2327,7 @@ void t_java_generator::generate_java_bean_boilerplate(ofstream& out, t_struct* t
// Simple getter
generate_java_doc(out, field);
- if (type->is_base_type() && ((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
if (is_deprecated) {
indent(out) << "@Deprecated" << endl;
}
@@ -2388,7 +2388,7 @@ void t_java_generator::generate_java_bean_boilerplate(ofstream& out, t_struct* t
// Simple setter
generate_java_doc(out, field);
- if (type->is_base_type() && ((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
if (is_deprecated) {
indent(out) << "@Deprecated" << endl;
}
@@ -2418,7 +2418,7 @@ void t_java_generator::generate_java_bean_boilerplate(ofstream& out, t_struct* t
out << " set" << cap_name << "(" << type_name(type) << " " << field_name << ") {" << endl;
indent_up();
indent(out) << "this." << field_name << " = ";
- if (type->is_base_type() && ((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "org.apache.thrift.TBaseHelper.copyBinary(" << field_name << ")";
} else {
out << field_name;
@@ -2526,20 +2526,15 @@ void t_java_generator::generate_java_struct_tostring(ofstream& out, t_struct* ts
indent_up();
}
- if (get_true_type(field->get_type())->is_base_type()
- && ((t_base_type*)(get_true_type(field->get_type())))->is_binary()) {
+ if (get_true_type(field->get_type())->is_binary()) {
indent(out) << "org.apache.thrift.TBaseHelper.toString(this." << field->get_name() << ", sb);"
<< endl;
} else if ((field->get_type()->is_set())
- && (get_true_type(((t_set*)field->get_type())->get_elem_type())->is_base_type())
- && (((t_base_type*)get_true_type(((t_set*)field->get_type())->get_elem_type()))
- ->is_binary())) {
+ && (get_true_type(((t_set*)field->get_type())->get_elem_type())->is_binary())) {
indent(out) << "org.apache.thrift.TBaseHelper.toString(this." << field->get_name() << ", sb);"
<< endl;
} else if ((field->get_type()->is_list())
- && (get_true_type(((t_list*)field->get_type())->get_elem_type())->is_base_type())
- && (((t_base_type*)get_true_type(((t_list*)field->get_type())->get_elem_type()))
- ->is_binary())) {
+ && (get_true_type(((t_list*)field->get_type())->get_elem_type())->is_binary())) {
indent(out) << "org.apache.thrift.TBaseHelper.toString(this." << field->get_name() << ", sb);"
<< endl;
} else {
@@ -2710,7 +2705,7 @@ void t_java_generator::generate_field_value_meta_data(std::ofstream& out, t_type
<< get_java_type_string(type);
if (type->is_typedef()) {
indent(out) << ", \"" << ((t_typedef*)type)->get_symbolic() << "\"";
- } else if (((t_base_type*)type)->is_binary()) {
+ } else if (type->is_binary()) {
indent(out) << ", true";
}
}
@@ -3647,7 +3642,7 @@ void t_java_generator::generate_deserialize_field(ofstream& out,
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "readBinary();";
} else {
out << "readString();";
@@ -3932,7 +3927,7 @@ void t_java_generator::generate_serialize_field(ofstream& out,
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "writeBinary(" << name << ");";
} else {
out << "writeString(" << name << ");";
@@ -4636,7 +4631,7 @@ void t_java_generator::generate_deep_copy_container(ofstream& out,
indent(out) << result_name << ".add(" << result_element_name << ");" << endl;
} else {
// iterative copy
- if (((t_base_type*)elem_type)->is_binary()) {
+ if (elem_type->is_binary()) {
indent(out) << "java.nio.ByteBuffer temp_binary_element = ";
generate_deep_copy_non_container(out,
iterator_element_name,
@@ -4663,7 +4658,7 @@ void t_java_generator::generate_deep_copy_non_container(ofstream& out,
t_type* type) {
(void)dest_name;
if (type->is_base_type() || type->is_enum() || type->is_typedef()) {
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "org.apache.thrift.TBaseHelper.copyBinary(" << source_name << ")";
} else {
// everything else can be copied directly
http://git-wip-us.apache.org/repos/asf/thrift/blob/971d0778/compiler/cpp/src/thrift/generate/t_javame_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/generate/t_javame_generator.cc b/compiler/cpp/src/thrift/generate/t_javame_generator.cc
index 94d66fc..24b7560 100644
--- a/compiler/cpp/src/thrift/generate/t_javame_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_javame_generator.cc
@@ -1222,7 +1222,7 @@ void t_javame_generator::generate_java_struct_equality(ofstream& out, t_struct*
<< "this_present_" << name << " && that_present_" << name << "))" << endl << indent()
<< " return false;" << endl;
- if (t->is_base_type() && ((t_base_type*)t)->is_binary()) {
+ if (t->is_binary()) {
unequal = "TBaseHelper.compareTo(this." + name + ", that." + name + ") != 0";
} else if (can_be_null) {
unequal = "!this." + name + ".equals(that." + name + ")";
@@ -1740,7 +1740,7 @@ void t_javame_generator::generate_java_struct_tostring(ofstream& out, t_struct*
indent_up();
}
- if (field->get_type()->is_base_type() && ((t_base_type*)(field->get_type()))->is_binary()) {
+ if (field->get_type()->is_binary()) {
indent(out) << "TBaseHelper.toString(this." << field->get_name() << ", sb);" << endl;
} else {
indent(out) << "sb.append(this." << (*f_iter)->get_name() << ");" << endl;
@@ -2413,7 +2413,7 @@ void t_javame_generator::generate_deserialize_field(ofstream& out, t_field* tfie
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- if (!((t_base_type*)type)->is_binary()) {
+ if (!type->is_binary()) {
out << "readString();";
} else {
out << "readBinary();";
@@ -2609,7 +2609,7 @@ void t_javame_generator::generate_serialize_field(ofstream& out, t_field* tfield
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "writeBinary(" << name << ");";
} else {
out << "writeString(" << name << ");";
@@ -3144,7 +3144,7 @@ void t_javame_generator::generate_deep_copy_container(ofstream& out,
}
} else {
// iterative copy
- if (((t_base_type*)elem_type)->is_binary()) {
+ if (elem_type->is_binary()) {
indent(out) << type_name(elem_type, true, false) << " temp_binary_element = ";
generate_deep_copy_non_container(out,
iterator_element_name,
@@ -3175,7 +3175,7 @@ void t_javame_generator::generate_deep_copy_non_container(ofstream& out,
t_type* type) {
if (type->is_base_type() || type->is_enum() || type->is_typedef()) {
// binary fields need to be copied with System.arraycopy
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "new byte[" << source_name << ".length];" << endl;
indent(out) << "System.arraycopy(" << source_name << ", 0, " << dest_name << ", 0, "
<< source_name << ".length)";
http://git-wip-us.apache.org/repos/asf/thrift/blob/971d0778/compiler/cpp/src/thrift/generate/t_js_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/generate/t_js_generator.cc b/compiler/cpp/src/thrift/generate/t_js_generator.cc
index 985ee0c..856f75c 100644
--- a/compiler/cpp/src/thrift/generate/t_js_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_js_generator.cc
@@ -1651,7 +1651,7 @@ void t_js_generator::generate_deserialize_field(ofstream& out,
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- out << (((t_base_type*)type)->is_binary() ? "readBinary()" : "readString()");
+ out << (type->is_binary() ? "readBinary()" : "readString()");
break;
case t_base_type::TYPE_BOOL:
out << "readBool()";
@@ -1849,7 +1849,7 @@ void t_js_generator::generate_serialize_field(ofstream& out, t_field* tfield, st
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- out << (((t_base_type*)type)->is_binary() ? "writeBinary(" : "writeString(") << name << ")";
+ out << (type->is_binary() ? "writeBinary(" : "writeString(") << name << ")";
break;
case t_base_type::TYPE_BOOL:
out << "writeBool(" << name << ")";
http://git-wip-us.apache.org/repos/asf/thrift/blob/971d0778/compiler/cpp/src/thrift/generate/t_netcore_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/generate/t_netcore_generator.cc b/compiler/cpp/src/thrift/generate/t_netcore_generator.cc
index f4298c2..71e4236 100644
--- a/compiler/cpp/src/thrift/generate/t_netcore_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_netcore_generator.cc
@@ -1540,7 +1540,7 @@ void t_netcore_generator::generate_netcore_struct_equals(ofstream& out, t_struct
<< normalize_name((*f_iter)->get_name()) << ") || (";
}
t_type* ttype = (*f_iter)->get_type();
- if (ttype->is_container() || (ttype->is_base_type() && (((t_base_type*)ttype)->is_binary())))
+ if (ttype->is_container() || ttype->is_binary())
{
out << "TCollections.Equals(";
}
@@ -2291,7 +2291,7 @@ void t_netcore_generator::generate_deserialize_field(ofstream& out, t_field* tfi
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- if (static_cast<t_base_type*>(type)->is_binary())
+ if (type->is_binary())
{
out << "ReadBinaryAsync(cancellationToken);";
}
@@ -2497,7 +2497,7 @@ void t_netcore_generator::generate_serialize_field(ofstream& out, t_field* tfiel
case t_base_type::TYPE_VOID:
throw "compiler error: cannot serialize void field in a struct: " + name;
case t_base_type::TYPE_STRING:
- if (static_cast<t_base_type*>(type)->is_binary())
+ if (type->is_binary())
{
out << "WriteBinaryAsync(";
}
http://git-wip-us.apache.org/repos/asf/thrift/blob/971d0778/compiler/cpp/src/thrift/generate/t_py_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/generate/t_py_generator.cc b/compiler/cpp/src/thrift/generate/t_py_generator.cc
index fa4b1e4..6b8697d 100644
--- a/compiler/cpp/src/thrift/generate/t_py_generator.cc
+++ b/compiler/cpp/src/thrift/generate/t_py_generator.cc
@@ -2071,7 +2071,7 @@ void t_py_generator::generate_deserialize_field(ofstream& out,
case t_base_type::TYPE_VOID:
throw "compiler error: cannot serialize void field in a struct: " + name;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "readBinary()";
} else if(!gen_utf8strings_) {
out << "readString()";
@@ -2259,7 +2259,7 @@ void t_py_generator::generate_serialize_field(ofstream& out, t_field* tfield, st
throw "compiler error: cannot serialize void field in a struct: " + name;
break;
case t_base_type::TYPE_STRING:
- if (((t_base_type*)type)->is_binary()) {
+ if (type->is_binary()) {
out << "writeBinary(" << name << ")";
} else if (!gen_utf8strings_) {
out << "writeString(" << name << ")";
@@ -2599,7 +2599,7 @@ string t_py_generator::type_to_spec_args(t_type* ttype) {
ttype = ((t_typedef*)ttype)->get_type();
}
- if (ttype->is_base_type() && reinterpret_cast<t_base_type*>(ttype)->is_binary()) {
+ if (ttype->is_binary()) {
return "'BINARY'";
} else if (gen_utf8strings_ && ttype->is_base_type()
&& reinterpret_cast<t_base_type*>(ttype)->is_string()) {
http://git-wip-us.apache.org/repos/asf/thrift/blob/971d0778/compiler/cpp/src/thrift/parse/t_type.h
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/thrift/parse/t_type.h b/compiler/cpp/src/thrift/parse/t_type.h
index 30f8c1f..3a6d1e0 100644
--- a/compiler/cpp/src/thrift/parse/t_type.h
+++ b/compiler/cpp/src/thrift/parse/t_type.h
@@ -47,6 +47,7 @@ public:
virtual bool is_void() const { return false; }
virtual bool is_base_type() const { return false; }
virtual bool is_string() const { return false; }
+ virtual bool is_binary() const { return false; }
virtual bool is_bool() const { return false; }
virtual bool is_typedef() const { return false; }
virtual bool is_enum() const { return false; }