28 lines
1.4 KiB
Diff
28 lines
1.4 KiB
Diff
diff --git a/compiler/cpp/src/thrift/generate/t_java_generator.cc b/compiler/cpp/src/thrift/generate/t_java_generator.cc
|
|
index fb581e4..90dfa06 100644
|
|
--- a/compiler/cpp/src/thrift/generate/t_java_generator.cc
|
|
+++ b/compiler/cpp/src/thrift/generate/t_java_generator.cc
|
|
@@ -4657,8 +4657,9 @@ void t_java_generator::generate_deep_copy_non_container(ofstream& out,
|
|
std::string dest_name,
|
|
t_type* type) {
|
|
(void)dest_name;
|
|
+ type = get_true_type(type);
|
|
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
|
|
diff --git a/compiler/cpp/src/thrift/parse/t_type.h b/compiler/cpp/src/thrift/parse/t_type.h
|
|
index 30f8c1f7..3a6d1e04 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; }
|