diff options
Diffstat (limited to 'cpp/src/slice2java/Gen.cpp')
-rw-r--r-- | cpp/src/slice2java/Gen.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp index 9142e4b6e05..4289a6ae5a9 100644 --- a/cpp/src/slice2java/Gen.cpp +++ b/cpp/src/slice2java/Gen.cpp @@ -3185,6 +3185,23 @@ Slice::Gen::HolderVisitor::visitStructStart(const StructPtr& p) void Slice::Gen::HolderVisitor::visitSequence(const SequencePtr& p) { + BuiltinPtr builtin = BuiltinPtr::dynamicCast(p->type()); + if(builtin && builtin->kind() == Builtin::KindByte) + { + string prefix = "java:serializable:"; + string meta; + if(p->findMetaData(prefix, meta)) + { + return; // No holders for serializable types. + } + prefix = "java:protobuf:"; + if(p->findMetaData(prefix, meta)) + { + return; // No holders for protobuf types. + + } + } + writeHolder(p); } |