summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/BasicStream.cpp
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2003-09-27 18:29:05 +0000
committerBernard Normier <bernard@zeroc.com>2003-09-27 18:29:05 +0000
commit2ed1ab24d251c990cfe31cd4135ee26ff112dca3 (patch)
treecfaf6cd82735e3c2555eea378435a254d7e58c82 /cpp/src/Ice/BasicStream.cpp
parentMinor compilation fix for VC6 (diff)
downloadice-2ed1ab24d251c990cfe31cd4135ee26ff112dca3.tar.bz2
ice-2ed1ab24d251c990cfe31cd4135ee26ff112dca3.tar.xz
ice-2ed1ab24d251c990cfe31cd4135ee26ff112dca3.zip
read(string&) fix
Diffstat (limited to 'cpp/src/Ice/BasicStream.cpp')
-rw-r--r--cpp/src/Ice/BasicStream.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/cpp/src/Ice/BasicStream.cpp b/cpp/src/Ice/BasicStream.cpp
index 4ce74e83f35..50b56fcc957 100644
--- a/cpp/src/Ice/BasicStream.cpp
+++ b/cpp/src/Ice/BasicStream.cpp
@@ -1097,8 +1097,15 @@ IceInternal::BasicStream::read(string& v)
{
throw UnmarshalOutOfBoundsException(__FILE__, __LINE__);
}
- v.assign(reinterpret_cast<const char*>(&(*i)), len);
- i += len;
+ if(len > 0)
+ {
+ v.assign(reinterpret_cast<const char*>(&(*i)), len);
+ i += len;
+ }
+ else
+ {
+ v.clear();
+ }
}
void