diff options
author | Michi Henning <michi@zeroc.com> | 2003-03-19 09:44:58 +0000 |
---|---|---|
committer | Michi Henning <michi@zeroc.com> | 2003-03-19 09:44:58 +0000 |
commit | 524c6efc4149e64c318fb8b5174816b5b7b7345c (patch) | |
tree | 03df71df54b0bd214af78f73ee565a5217933226 /cpp/src/Slice/CPlusPlusUtil.cpp | |
parent | deep comparison of sequences (diff) | |
download | ice-524c6efc4149e64c318fb8b5174816b5b7b7345c.tar.bz2 ice-524c6efc4149e64c318fb8b5174816b5b7b7345c.tar.xz ice-524c6efc4149e64c318fb8b5174816b5b7b7345c.zip |
The following Slice file generated incorrect code:
class X; class Y { X myX; };
Fixed the marshaling side (__write() and __marshal()) for this, but the
reading side (__read() and __unmarshal()) are still broken.
Diffstat (limited to 'cpp/src/Slice/CPlusPlusUtil.cpp')
-rw-r--r-- | cpp/src/Slice/CPlusPlusUtil.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/cpp/src/Slice/CPlusPlusUtil.cpp b/cpp/src/Slice/CPlusPlusUtil.cpp index c66611d4ab9..f0d77d96fe1 100644 --- a/cpp/src/Slice/CPlusPlusUtil.cpp +++ b/cpp/src/Slice/CPlusPlusUtil.cpp @@ -424,8 +424,8 @@ Slice::writeMarshalUnmarshalCode(Output& out, const TypePtr& type, const string& out << sb; if(marshal) { - out << nl << "::Ice::ObjectPtr " << obj << " = " << fixedParam << ';'; - out << nl << stream << deref << func << obj << ");"; + string scope = fixKwd(cl->scope()); + out << nl << scope << "__write(" << stream << ", " << fixedParam << ");"; } else { @@ -643,8 +643,9 @@ Slice::writeGenericMarshalUnmarshalCode(Output& out, const TypePtr& type, const out << sb; if(marshal) { - out << nl << "::Ice::ObjectPtr " << obj << " = " << fixedParam << ';'; - out << nl << stream << deref << streamFunc << "Object(" << tagName << ", " << obj << ");"; + string scope = fixKwd(cl->scope()); + out << nl << scope << "__" << streamFunc << "Object(" << stream << ", " << tagName << ", " + << fixedParam << ");"; } else { |