diff options
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/Ice/Reference.cpp | 15 |
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. } } |