diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2006-02-07 14:26:23 +0000 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2006-02-07 14:26:23 +0000 |
commit | 3d5721d40940b2361d0708b81c390f490e5e06b3 (patch) | |
tree | 0c82879298a1b197c85a885332849d4c2072bda8 /cpp/src | |
parent | Fixed windows build of custom AMD server (diff) | |
download | ice-3d5721d40940b2361d0708b81c390f490e5e06b3.tar.bz2 ice-3d5721d40940b2361d0708b81c390f490e5e06b3.tar.xz ice-3d5721d40940b2361d0708b81c390f490e5e06b3.zip |
Fixed sequences of classes
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Slice/CPlusPlusUtil.cpp | 20 |
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() << ", " |