From 5b2cdfebdd59ca3f99eb306e0ccf775fc0a81b83 Mon Sep 17 00:00:00 2001 From: Benoit Foucher Date: Wed, 9 Jan 2008 21:27:15 +0100 Subject: - Fixed bug 1619, part of 2632. --- cpp/src/Ice/Object.cpp | 43 ++++++++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 13 deletions(-) (limited to 'cpp/src/Ice/Object.cpp') diff --git a/cpp/src/Ice/Object.cpp b/cpp/src/Ice/Object.cpp index 9c7d05b87f4..7fddcb7f57c 100644 --- a/cpp/src/Ice/Object.cpp +++ b/cpp/src/Ice/Object.cpp @@ -95,17 +95,20 @@ DispatchStatus Ice::Object::___ice_isA(Incoming& __inS, const Current& __current) { BasicStream* __is = __inS.is(); - BasicStream* __os = __inS.os(); + __is->startReadEncaps(); string __id; __is->read(__id, false); + __is->endReadEncaps(); bool __ret = ice_isA(__id, __current); + BasicStream* __os = __inS.os(); __os->write(__ret); return DispatchOK; } DispatchStatus -Ice::Object::___ice_ping(Incoming&, const Current& __current) +Ice::Object::___ice_ping(Incoming& __inS, const Current& __current) { + __inS.is()->skipEmptyEncaps(); ice_ping(__current); return DispatchOK; } @@ -113,8 +116,9 @@ Ice::Object::___ice_ping(Incoming&, const Current& __current) DispatchStatus Ice::Object::___ice_ids(Incoming& __inS, const Current& __current) { - BasicStream* __os = __inS.os(); + __inS.is()->skipEmptyEncaps(); vector __ret = ice_ids(__current); + BasicStream* __os = __inS.os(); __os->write(&__ret[0], &__ret[0] + __ret.size(), false); return DispatchOK; } @@ -122,8 +126,9 @@ Ice::Object::___ice_ids(Incoming& __inS, const Current& __current) DispatchStatus Ice::Object::___ice_id(Incoming& __inS, const Current& __current) { - BasicStream* __os = __inS.os(); + __inS.is()->skipEmptyEncaps(); string __ret = ice_id(__current); + BasicStream* __os = __inS.os(); __os->write(__ret, false); return DispatchOK; } @@ -350,9 +355,12 @@ DispatchStatus Ice::Blobject::__dispatch(Incoming& in, const Current& current) { vector inParams; + BasicStream* is = in.is(); + is->startReadEncaps(); + Int sz = is->getReadEncapsSize(); + is->readBlob(inParams, sz); + is->endReadEncaps(); vector outParams; - Int sz = in.is()->getReadEncapsSize(); - in.is()->readBlob(inParams, sz); bool ok = ice_invoke(inParams, outParams, current); in.os()->writeBlob(outParams); if(ok) @@ -369,10 +377,13 @@ DispatchStatus Ice::BlobjectArray::__dispatch(Incoming& in, const Current& current) { pair inParams; - vector outParams; - Int sz = in.is()->getReadEncapsSize(); - in.is()->readBlob(inParams.first, sz); + BasicStream* is = in.is(); + is->startReadEncaps(); + Int sz = is->getReadEncapsSize(); + is->readBlob(inParams.first, sz); inParams.second = inParams.first + sz; + is->endReadEncaps(); + vector outParams; bool ok = ice_invoke(inParams, outParams, current); in.os()->writeBlob(outParams); if(ok) @@ -389,8 +400,11 @@ DispatchStatus Ice::BlobjectAsync::__dispatch(Incoming& in, const Current& current) { vector inParams; - Int sz = in.is()->getReadEncapsSize(); - in.is()->readBlob(inParams, sz); + BasicStream* is = in.is(); + is->startReadEncaps(); + Int sz = is->getReadEncapsSize(); + is->readBlob(inParams, sz); + is->endReadEncaps(); AMD_Object_ice_invokePtr cb = new ::IceAsync::Ice::AMD_Object_ice_invoke(in); try { @@ -411,9 +425,12 @@ DispatchStatus Ice::BlobjectArrayAsync::__dispatch(Incoming& in, const Current& current) { pair inParams; - Int sz = in.is()->getReadEncapsSize(); - in.is()->readBlob(inParams.first, sz); + BasicStream* is = in.is(); + is->startReadEncaps(); + Int sz = is->getReadEncapsSize(); + is->readBlob(inParams.first, sz); inParams.second = inParams.first + sz; + is->endReadEncaps(); AMD_Array_Object_ice_invokePtr cb = new ::IceAsync::Ice::AMD_Array_Object_ice_invoke(in); try { -- cgit v1.2.3