summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/BasicStream.cpp12
-rw-r--r--cpp/src/Ice/Exception.cpp11
2 files changed, 23 insertions, 0 deletions
diff --git a/cpp/src/Ice/BasicStream.cpp b/cpp/src/Ice/BasicStream.cpp
index b8fb3035d27..3ffadc78573 100644
--- a/cpp/src/Ice/BasicStream.cpp
+++ b/cpp/src/Ice/BasicStream.cpp
@@ -274,6 +274,18 @@ IceInternal::BasicStream::ReadEncaps::swap(ReadEncaps& other)
std::swap(previous, other.previous);
}
+void
+IceInternal::BasicStream::checkReadEncaps()
+{
+ assert(_currentReadEncaps);
+ Container::size_type start = _currentReadEncaps->start;
+ Int sz = _currentReadEncaps->sz;
+ if(i != b.begin() + start + sz)
+ {
+ throw EncapsulationException(__FILE__, __LINE__);
+ }
+}
+
Int
IceInternal::BasicStream::getReadEncapsSize()
{
diff --git a/cpp/src/Ice/Exception.cpp b/cpp/src/Ice/Exception.cpp
index dfa9e70b471..9c79f13c947 100644
--- a/cpp/src/Ice/Exception.cpp
+++ b/cpp/src/Ice/Exception.cpp
@@ -575,6 +575,17 @@ Ice::StringConversionException::ice_print(ostream& out) const
}
void
+Ice::EncapsulationException::ice_print(ostream& out) const
+{
+ Exception::ice_print(out);
+ out << ":\nprotocol error: illegal encapsulation";
+ if(!reason.empty())
+ {
+ out << ":\n" << reason;
+ }
+}
+
+void
Ice::NegativeSizeException::ice_print(ostream& out) const
{
Exception::ice_print(out);