diff options
Diffstat (limited to 'cpp/src/Slice/CPlusPlusUtil.cpp')
-rw-r--r-- | cpp/src/Slice/CPlusPlusUtil.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/cpp/src/Slice/CPlusPlusUtil.cpp b/cpp/src/Slice/CPlusPlusUtil.cpp index bc744762e34..16cfbe6edf5 100644 --- a/cpp/src/Slice/CPlusPlusUtil.cpp +++ b/cpp/src/Slice/CPlusPlusUtil.cpp @@ -360,7 +360,8 @@ Slice::writeMarshalUnmarshalCode(Output& out, const TypePtr& type, const string& SequencePtr seq = SequencePtr::dynamicCast(type); if (seq) { - if (BuiltinPtr::dynamicCast(seq->type())) + BuiltinPtr builtin = BuiltinPtr::dynamicCast(seq->type()); + if (builtin && builtin->kind() != Builtin::KindObject && builtin->kind() != Builtin::KindObjectProxy) { out << nl << stream << deref << func << param << ");"; } @@ -575,7 +576,7 @@ Slice::writeGenericMarshalUnmarshalCode(Output& out, const TypePtr& type, const if (seq) { BuiltinPtr builtin = BuiltinPtr::dynamicCast(seq->type()); - if (builtin) + if (builtin && builtin->kind() != Builtin::KindObject && builtin->kind() != Builtin::KindObjectProxy) { if (marshal) { |