diff options
author | Benoit Foucher <benoit@zeroc.com> | 2012-11-08 16:01:52 +0100 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2012-11-08 16:01:52 +0100 |
commit | 9887941643c108e6a5514449609f44f728cac13f (patch) | |
tree | 911b918268b1e828eb47c601f9a4db3627329a8d /cpp/include | |
parent | Fixed MinGW port (diff) | |
download | ice-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.h | 35 | ||||
-rw-r--r-- | cpp/include/Ice/Exception.h | 1 |
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: |