summaryrefslogtreecommitdiff
path: root/cpp/src/Slice/CPlusPlusUtil.cpp
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2006-02-07 14:26:23 +0000
committerDwayne Boone <dwayne@zeroc.com>2006-02-07 14:26:23 +0000
commit3d5721d40940b2361d0708b81c390f490e5e06b3 (patch)
tree0c82879298a1b197c85a885332849d4c2072bda8 /cpp/src/Slice/CPlusPlusUtil.cpp
parentFixed windows build of custom AMD server (diff)
downloadice-3d5721d40940b2361d0708b81c390f490e5e06b3.tar.bz2
ice-3d5721d40940b2361d0708b81c390f490e5e06b3.tar.xz
ice-3d5721d40940b2361d0708b81c390f490e5e06b3.zip
Fixed sequences of classes
Diffstat (limited to 'cpp/src/Slice/CPlusPlusUtil.cpp')
-rw-r--r--cpp/src/Slice/CPlusPlusUtil.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/cpp/src/Slice/CPlusPlusUtil.cpp b/cpp/src/Slice/CPlusPlusUtil.cpp
index 841e26d48ad..a3ec06913c4 100644
--- a/cpp/src/Slice/CPlusPlusUtil.cpp
+++ b/cpp/src/Slice/CPlusPlusUtil.cpp
@@ -730,9 +730,19 @@ Slice::writeMarshalUnmarshalCode(Output& out, const TypePtr& type, const string&
<< typeToString(innerProxy) << ">(" << stream << ", " << fixedParam << ", "
<< innerScope << "__write);";
return;
+ }
+ ClassDeclPtr innerClass = ClassDeclPtr::dynamicCast(seq->type());
+ if(innerClass)
+ {
+ string innerScope = fixKwd(innerClass->scope());
+ out << nl << "::IceInternal::writeSequence7<" << typeStr << ", "
+ << typeToString(innerClass) << ">(" << stream << ", " << fixedParam << ", "
+ << innerScope << "__write);";
+ return;
}
+
out << nl << "::IceInternal::writeSequence2<" << typeStr << ">(" << stream
<< ", " << fixedParam << ");";
}
@@ -926,6 +936,16 @@ Slice::writeMarshalUnmarshalCode(Output& out, const TypePtr& type, const string&
return;
}
+ ClassDeclPtr innerClass = ClassDeclPtr::dynamicCast(seq->type());
+ if(innerClass)
+ {
+ string innerScope = fixKwd(innerClass->scope());
+ out << nl << "::IceInternal::readSequence6<" << typeStr << ">(" << stream << ", "
+ << fixedParam << ", " << innerClass->minWireSize() << ", "
+ << innerScope << "__patch__" << innerClass->name() << "Ptr);";
+ return;
+ }
+
TypePtr elemType = seq->type();
out << nl << "::IceInternal::readSequence2<" << typeStr << ">(" << stream << ", "
<< fixedParam << ", " << elemType->minWireSize() << ", "