diff options
author | Benoit Foucher <benoit@zeroc.com> | 2012-11-09 09:11:10 +0100 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2012-11-09 09:11:10 +0100 |
commit | 184da87329e27c001fdebdaa88511aa71826f4c6 (patch) | |
tree | 8b8de8d493936961de56cdb449ef015c860834ad /cpp/src/slice2cpp | |
parent | Fixed ICE-4928 - GUI Login issues (diff) | |
download | ice-184da87329e27c001fdebdaa88511aa71826f4c6.tar.bz2 ice-184da87329e27c001fdebdaa88511aa71826f4c6.tar.xz ice-184da87329e27c001fdebdaa88511aa71826f4c6.zip |
Java and C# fix for ICE-4930, invalid 1.0 marhsaling of pending objects
Diffstat (limited to 'cpp/src/slice2cpp')
-rw-r--r-- | cpp/src/slice2cpp/Gen.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp index ac7058fc64b..f7e0f4b615f 100644 --- a/cpp/src/slice2cpp/Gen.cpp +++ b/cpp/src/slice2cpp/Gen.cpp @@ -2237,6 +2237,10 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p) { C << nl << "::IceInternal::BasicStream* __is = __result->__startReadParams();"; writeUnmarshalCode(C, outParams, p, _useWstring | TypeContextAMIEnd); + if(p->returnsClasses()) + { + C << nl << "__is->readPendingObjects();"; + } C << nl << "__result->__endReadParams();"; } else @@ -2303,6 +2307,10 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p) { C << nl << "::IceInternal::BasicStream* __is = __result->__startReadParams();"; writeUnmarshalCode(C, outParams, p, _useWstring | TypeContextAMIPrivateEnd); + if(p->returnsClasses()) + { + C << nl << "__is->readPendingObjects();"; + } C << nl << "__result->__endReadParams();"; } else @@ -2807,6 +2815,10 @@ Slice::Gen::DelegateMVisitor::visitOperation(const OperationPtr& p) { C << nl << "::IceInternal::BasicStream* __is = __og.startReadParams();"; writeUnmarshalCode(C, outParams, p); + if(p->returnsClasses()) + { + C << nl << "__is->readPendingObjects();"; + } C << nl << "__og.endReadParams();"; } else @@ -4260,6 +4272,10 @@ Slice::Gen::ObjectVisitor::visitOperation(const OperationPtr& p) C << nl << "::IceInternal::BasicStream* __is = __inS.startReadParams();"; writeAllocateCode(C, inParams, 0, _useWstring | TypeContextInParam); writeUnmarshalCode(C, inParams, 0, TypeContextInParam); + if(p->sendsClasses()) + { + C << nl << "__is->readPendingObjects();"; + } C << nl << "__inS.endReadParams();"; } else @@ -4318,6 +4334,10 @@ Slice::Gen::ObjectVisitor::visitOperation(const OperationPtr& p) C << nl << "::IceInternal::BasicStream* __is = __inS.startReadParams();"; writeAllocateCode(C, inParams, 0, _useWstring | TypeContextInParam); writeUnmarshalCode(C, inParams, 0, TypeContextInParam); + if(p->sendsClasses()) + { + C << nl << "__is->readPendingObjects();"; + } C << nl << "__inS.endReadParams();"; } else |