summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Slice/CPlusPlusUtil.cpp5
-rw-r--r--cpp/src/slice2cpp/Gen.cpp3
2 files changed, 5 insertions, 3 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)
{
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp
index 679fa5ce774..3291133b600 100644
--- a/cpp/src/slice2cpp/Gen.cpp
+++ b/cpp/src/slice2cpp/Gen.cpp
@@ -597,7 +597,8 @@ Slice::Gen::TypesVisitor::visitSequence(const SequencePtr& p)
H << sp << nl << "typedef ::std::vector<" << s << "> " << name << ';';
BuiltinPtr builtin = BuiltinPtr::dynamicCast(type);
- if (!builtin && !p->isLocal())
+ if (!p->isLocal() &&
+ (!builtin || builtin->kind() == Builtin::KindObject || builtin->kind() == Builtin::KindObjectProxy))
{
string scoped = p->scoped();
string scope = p->scope();