summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/Ice/Reference.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/cpp/src/Ice/Reference.cpp b/cpp/src/Ice/Reference.cpp
index ef804c1b5f7..faec02f6c70 100644
--- a/cpp/src/Ice/Reference.cpp
+++ b/cpp/src/Ice/Reference.cpp
@@ -738,11 +738,18 @@ IceInternal::DirectReference::streamWrite(BasicStream* s) const
{
RoutableReference::streamWrite(s);
- s->writeSize(Ice::Int(_endpoints.size()));
- vector<EndpointPtr>::const_iterator p;
- for(p = _endpoints.begin(); p != _endpoints.end(); ++p)
+ Ice::Int sz = static_cast<Ice::Int>(endpoints.size());
+ s->writeSize(sz);
+ if(sz)
+ {
+ for(vector<EndpointPtr>::const_iterator p = endpoints.begin(); p != endpoints.end(); ++p)
+ {
+ (*p)->streamWrite(s);
+ }
+ }
+ else
{
- (*p)->streamWrite(s);
+ s->write(string("")); // Adapter id.
}
}