summaryrefslogtreecommitdiff
path: root/cpp/src/Slice/CPlusPlusUtil.cpp
diff options
context:
space:
mode:
authorMichi Henning <michi@zeroc.com>2003-03-19 09:44:58 +0000
committerMichi Henning <michi@zeroc.com>2003-03-19 09:44:58 +0000
commit524c6efc4149e64c318fb8b5174816b5b7b7345c (patch)
tree03df71df54b0bd214af78f73ee565a5217933226 /cpp/src/Slice/CPlusPlusUtil.cpp
parentdeep comparison of sequences (diff)
downloadice-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.cpp9
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
{