summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpp/include/Ice/BasicStream.h6
-rw-r--r--cpp/src/Ice/BasicStream.cpp6
2 files changed, 9 insertions, 3 deletions
diff --git a/cpp/include/Ice/BasicStream.h b/cpp/include/Ice/BasicStream.h
index e01411aea1a..5e6d5007734 100644
--- a/cpp/include/Ice/BasicStream.h
+++ b/cpp/include/Ice/BasicStream.h
@@ -84,6 +84,7 @@ public:
}
b.resize(sz);
+ i = b.end();
}
void startWriteObject(const Ice::SlicedDataPtr& data)
@@ -854,6 +855,11 @@ public:
}
}
+ int pos()
+ {
+ return i - b.begin();
+ }
+
void rewrite(Ice::Int value, size_type p)
{
write(value, b.begin() + p);
diff --git a/cpp/src/Ice/BasicStream.cpp b/cpp/src/Ice/BasicStream.cpp
index 18192e118e9..ddaa4f29656 100644
--- a/cpp/src/Ice/BasicStream.cpp
+++ b/cpp/src/Ice/BasicStream.cpp
@@ -53,7 +53,7 @@ public:
//
// Return unused bytes
//
- _stream.b.resize(firstUnused - _stream.b.begin());
+ _stream.resize(firstUnused - _stream.b.begin());
}
//
@@ -1364,7 +1364,7 @@ IceInternal::BasicStream::writeConverted(const char* vdata, size_t vsize)
Byte* lastByte = _stringConverter->toUTF8(vdata, vdata + vsize, buffer);
if(lastByte != b.end())
{
- b.resize(lastByte - b.begin());
+ resize(lastByte - b.begin());
}
size_t lastIndex = b.size();
@@ -1479,7 +1479,7 @@ IceInternal::BasicStream::write(const wstring& v)
Byte* lastByte = _wstringConverter->toUTF8(v.data(), v.data() + v.size(), buffer);
if(lastByte != b.end())
{
- b.resize(lastByte - b.begin());
+ resize(lastByte - b.begin());
}
size_t lastIndex = b.size();