summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Reference.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Ice/Reference.cpp')
-rw-r--r--cpp/src/Ice/Reference.cpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/cpp/src/Ice/Reference.cpp b/cpp/src/Ice/Reference.cpp
index e4932abb6cf..8b4e3f827c3 100644
--- a/cpp/src/Ice/Reference.cpp
+++ b/cpp/src/Ice/Reference.cpp
@@ -11,7 +11,6 @@
#include <Ice/ReferenceFactory.h>
#include <Ice/LocalException.h>
#include <Ice/Instance.h>
-#include <Ice/IdentityUtil.h>
#include <Ice/EndpointI.h>
#include <Ice/BasicStream.h>
#include <Ice/RouterInfo.h>
@@ -188,7 +187,7 @@ IceInternal::Reference::toString() const
// the reference parser uses as separators, then we enclose
// the identity string in quotes.
//
- string id = identityToString(_identity);
+ string id = _instance->identityToString(_identity);
if(id.find_first_of(" \t\n\r:@") != string::npos)
{
s << '"' << id << '"';
@@ -207,7 +206,15 @@ IceInternal::Reference::toString() const
// the reference parser uses as separators, then we enclose
// the facet string in quotes.
//
- string fs = IceUtil::escapeString(_facet, "");
+ string fs = _facet;
+ if(_instance->initializationData().stringConverter)
+ {
+ UTF8BufferI buffer;
+ Byte* last =
+ _instance->initializationData().stringConverter->toUTF8(fs.data(), fs.data() + fs.size(), buffer);
+ fs = string(buffer.getBuffer(), last);
+ }
+ fs = IceUtil::escapeString(fs, "");
if(fs.find_first_of(" \t\n\r:@") != string::npos)
{
s << '"' << fs << '"';
@@ -1427,7 +1434,14 @@ IceInternal::IndirectReference::toString() const
// reference parser uses as separators, then we enclose the
// adapter id string in quotes.
//
- string a = IceUtil::escapeString(_adapterId, "");
+ string a = _adapterId;
+ if(getInstance()->initializationData().stringConverter)
+ {
+ UTF8BufferI buffer;
+ Byte* last = getInstance()->initializationData().stringConverter->toUTF8(a.data(), a.data() + a.size(), buffer);
+ a = string(buffer.getBuffer(), last);
+ }
+ a = IceUtil::escapeString(a, "");
if(a.find_first_of(" \t\n\r") != string::npos)
{
result.append("\"");