diff options
Diffstat (limited to 'cpp/src/Slice/RubyUtil.cpp')
-rw-r--r-- | cpp/src/Slice/RubyUtil.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/cpp/src/Slice/RubyUtil.cpp b/cpp/src/Slice/RubyUtil.cpp index fbed4764bbe..796bdd5cd57 100644 --- a/cpp/src/Slice/RubyUtil.cpp +++ b/cpp/src/Slice/RubyUtil.cpp @@ -1493,7 +1493,7 @@ Slice::Ruby::CodeVisitor::writeConstantValue(const TypePtr& type, const SyntaxTr } s += "\\"; } - + // // An even number of slash \ will escape the backslash and // the codepoint will be interpreted as its charaters @@ -1507,15 +1507,15 @@ Slice::Ruby::CodeVisitor::writeConstantValue(const TypePtr& type, const SyntaxTr // Convert codepoint to UTF8 bytes and write the escaped bytes // _out << s.substr(0, s.size() - 1); - + size_t sz = value[j] == 'U' ? 8 : 4; string codepoint = value.substr(j + 1, sz); assert(codepoint.size() == sz); IceUtil::Int64 v = IceUtilInternal::strToInt64(codepoint.c_str(), 0, 16); - + vector<unsigned int> u32buffer; - u32buffer.push_back(v); - + u32buffer.push_back(static_cast<unsigned int>(v)); + vector<unsigned char> u8buffer; IceUtilInternal::ConversionResult result = convertUTF32ToUTF8(u32buffer, u8buffer, IceUtil::lenientConversion); switch(result) @@ -1532,7 +1532,7 @@ Slice::Ruby::CodeVisitor::writeConstantValue(const TypePtr& type, const SyntaxTr throw IceUtil::IllegalConversionException(__FILE__, __LINE__); } } - + ostringstream s; for(vector<unsigned char>::const_iterator q = u8buffer.begin(); q != u8buffer.end(); ++q) { @@ -1543,7 +1543,7 @@ Slice::Ruby::CodeVisitor::writeConstantValue(const TypePtr& type, const SyntaxTr s << static_cast<unsigned int>(*q); } _out << s.str(); - + i = j + 1 + sz; } else |