summaryrefslogtreecommitdiff
path: root/cpp/include
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2012-11-08 16:01:52 +0100
committerBenoit Foucher <benoit@zeroc.com>2012-11-08 16:01:52 +0100
commit9887941643c108e6a5514449609f44f728cac13f (patch)
tree911b918268b1e828eb47c601f9a4db3627329a8d /cpp/include
parentFixed MinGW port (diff)
downloadice-9887941643c108e6a5514449609f44f728cac13f.tar.bz2
ice-9887941643c108e6a5514449609f44f728cac13f.tar.xz
ice-9887941643c108e6a5514449609f44f728cac13f.zip
C++ fix for ICE-4930, invalid 1.0 marhsaling of pending objects
Diffstat (limited to 'cpp/include')
-rw-r--r--cpp/include/Ice/BasicStream.h35
-rw-r--r--cpp/include/Ice/Exception.h1
2 files changed, 6 insertions, 30 deletions
diff --git a/cpp/include/Ice/BasicStream.h b/cpp/include/Ice/BasicStream.h
index b376d4b5b39..f81448087d8 100644
--- a/cpp/include/Ice/BasicStream.h
+++ b/cpp/include/Ice/BasicStream.h
@@ -369,20 +369,8 @@ public:
_currentReadEncaps->decoder->skipSlice();
}
- void readPendingObjects()
- {
- if(_currentReadEncaps && _currentReadEncaps->decoder)
- {
- _currentReadEncaps->decoder->readPendingObjects();
- }
- }
- void writePendingObjects()
- {
- if(_currentWriteEncaps && _currentWriteEncaps->encoder)
- {
- _currentWriteEncaps->encoder->writePendingObjects();
- }
- }
+ void readPendingObjects();
+ void writePendingObjects();
void writeSize(Ice::Int v) // Inlined for performance reasons.
{
@@ -802,16 +790,8 @@ public:
void writeEnum(Ice::Int, Ice::Int);
// Exception
- void writeException(const Ice::UserException& e)
- {
- initWriteEncaps();
- _currentWriteEncaps->encoder->write(e);
- }
- void throwException(const UserExceptionFactoryPtr& factory = 0)
- {
- initReadEncaps();
- _currentReadEncaps->decoder->throwException(factory);
- }
+ void writeException(const Ice::UserException&);
+ void throwException(const UserExceptionFactoryPtr& = 0);
void sliceObjects(bool);
@@ -909,7 +889,7 @@ private:
public:
EncapsDecoder(BasicStream* stream, ReadEncaps* encaps, bool sliceObjects) :
_stream(stream), _encaps(encaps), _sliceObjects(sliceObjects), _traceSlicing(-1), _sliceType(NoSlice),
- _usesClasses(false), _typeIdIndex(0)
+ _typeIdIndex(0)
{
}
@@ -960,7 +940,6 @@ private:
bool _skipFirstSlice;
Ice::SliceInfoSeq _slices; // Preserved slices.
IndexListList _indirectionTables; // Indirection tables for the preserved slices.
- bool _usesClasses;
// Slice attributes
Ice::Byte _sliceFlags;
@@ -979,7 +958,7 @@ private:
{
public:
EncapsEncoder(BasicStream* stream, WriteEncaps* encaps) :
- _stream(stream), _encaps(encaps), _sliceType(NoSlice), _usesClasses(false), _objectIdIndex(0),
+ _stream(stream), _encaps(encaps), _sliceType(NoSlice), _objectIdIndex(0),
_typeIdIndex(0)
{
}
@@ -1030,8 +1009,6 @@ private:
// Object/exception attributes
SliceType _sliceType;
bool _firstSlice;
- bool _usesClasses;
- Container::size_type _usesClassesPos;
// Slice attributes
Ice::Byte _sliceFlags;
diff --git a/cpp/include/Ice/Exception.h b/cpp/include/Ice/Exception.h
index 413bdd34bba..1a568c44e9b 100644
--- a/cpp/include/Ice/Exception.h
+++ b/cpp/include/Ice/Exception.h
@@ -64,7 +64,6 @@ public:
virtual void __read(const InputStreamPtr&);
virtual bool __usesClasses() const;
- virtual void __usesClasses(bool);
protected: