diff options
author | Marc Laukien <marc@zeroc.com> | 2001-09-05 02:35:27 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2001-09-05 02:35:27 +0000 |
commit | 21d6da9ae8b7f87bd35be4c55122545c2a6c0987 (patch) | |
tree | c12260002ff01312c17717f2ea569e1ab9684eea /cpp/src/Ice/Stream.cpp | |
parent | fix for STLport (diff) | |
download | ice-21d6da9ae8b7f87bd35be4c55122545c2a6c0987.tar.bz2 ice-21d6da9ae8b7f87bd35be4c55122545c2a6c0987.tar.xz ice-21d6da9ae8b7f87bd35be4c55122545c2a6c0987.zip |
batch-mode
Diffstat (limited to 'cpp/src/Ice/Stream.cpp')
-rw-r--r-- | cpp/src/Ice/Stream.cpp | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/cpp/src/Ice/Stream.cpp b/cpp/src/Ice/Stream.cpp index 21917a45783..7fa0802c9e6 100644 --- a/cpp/src/Ice/Stream.cpp +++ b/cpp/src/Ice/Stream.cpp @@ -39,8 +39,12 @@ IceInternal::Stream::instance() const void IceInternal::Stream::swap(Stream& other) { + assert(_instance.get() == other._instance.get()); + b.swap(other.b); std::swap(i, other.i); + _encapsStartStack.swap(other._encapsStartStack); + _stringSet.swap(other._stringSet); } void @@ -68,14 +72,14 @@ IceInternal::Stream::startWriteEncaps() { write(Byte(0)); // Encoding version write(Int(0)); // Placeholder for the encapsulation length - _encapsStartStack.push(b.size()); + _encapsStartStack.push_back(b.size()); } void IceInternal::Stream::endWriteEncaps() { - int start = _encapsStartStack.top(); - _encapsStartStack.pop(); + int start = _encapsStartStack.back(); + _encapsStartStack.pop_back(); Int sz = b.size() - start; const Byte* p = reinterpret_cast<const Byte*>(&sz); #ifdef ICE_BIGENDIAN @@ -100,14 +104,14 @@ IceInternal::Stream::startReadEncaps() } Int sz; read(sz); - _encapsStartStack.push(i - b.begin()); + _encapsStartStack.push_back(i - b.begin()); } void IceInternal::Stream::endReadEncaps() { - int start = _encapsStartStack.top(); - _encapsStartStack.pop(); + int start = _encapsStartStack.back(); + _encapsStartStack.pop_back(); Container::iterator save = i; i = b.begin() + start - sizeof(Int); Int sz; @@ -842,9 +846,22 @@ IceInternal::Stream::CmpPosPos::CmpPosPos(const Container& cont) : { } +IceInternal::Stream::CmpPosPos::CmpPosPos(const CmpPosPos& cmp) : + _cont(cmp._cont) +{ +} + +IceInternal::Stream::CmpPosPos& +IceInternal::Stream::CmpPosPos::operator=(const CmpPosPos&) +{ + // Do *not* assign anything! I want CmpPosPos to ignore std::swap(). + return *this; +} + bool IceInternal::Stream::CmpPosPos::operator()(int p, int q) const { + assert(!_cont.empty()); return strcmp(_cont.begin() + p, _cont.begin() + q) < 0; } @@ -853,14 +870,28 @@ IceInternal::Stream::CmpPosString::CmpPosString(const Container& cont) : { } +IceInternal::Stream::CmpPosString::CmpPosString(const CmpPosString& cmp) : + _cont(cmp._cont) +{ +} + +IceInternal::Stream::CmpPosString& +IceInternal::Stream::CmpPosString::operator=(const CmpPosString&) +{ + // Do *not* assign anything! I want CmpPosString to ignore std::swap(). + return *this; +} + bool IceInternal::Stream::CmpPosString::operator()(int i, const string& s) const { + assert(!_cont.empty()); return _cont.begin() + i < s; } bool IceInternal::Stream::CmpPosString::operator()(const string& s, int i) const { + assert(!_cont.empty()); return s < _cont.begin() + i; } |