--- a/sipvoipprovider/src/svpuriparser.cpp Wed Sep 15 12:01:56 2010 +0300
+++ b/sipvoipprovider/src/svpuriparser.cpp Wed Oct 13 14:20:32 2010 +0300
@@ -694,10 +694,19 @@
// Escape decode
CSVPUriParser::EscapeDecodeSipUriL( utf8 );
-
+
+ // Convert from UTF8 to unicode
+ HBufC* unicode16 = EscapeUtils::ConvertToUnicodeFromUtf8L( *utf8 );
+ CleanupStack::PopAndDestroy( utf8 ); // CS:0
+ CleanupStack::PushL( unicode16 ); // CS:1
+ HBufC8* unicode8 = HBufC8::NewL( unicode16->Length() );
+ ( unicode8->Des() ).Copy( *unicode16 );
+ CleanupStack::PopAndDestroy( unicode16 ); // CS:0
+ CleanupStack::PushL( unicode8 ); // CS:1
+
// Create SIP From header
- CSIPFromHeader* originatorHdr = CSIPFromHeader::DecodeL( *utf8 );
- CleanupStack::PopAndDestroy( utf8 ); // CS:0
+ CSIPFromHeader* originatorHdr = CSIPFromHeader::DecodeL( *unicode8 );
+ CleanupStack::PopAndDestroy( unicode8 ); // CS:0
CleanupStack::PushL( originatorHdr ); // CS:1
// Extract and parse display name, format is "..."
@@ -752,18 +761,7 @@
SVPDEBUG2( "CSVPUriParser::ParseDisplayNameL, display name: %S",
displayName )
-
- CleanupStack::PushL( displayName );
- HBufC8* utf8DisplayName8 = HBufC8::NewL( displayName->Length() );
- ( utf8DisplayName8->Des() ).Copy( *displayName );
- CleanupStack::PopAndDestroy( displayName );
-
- CleanupStack::PushL( utf8DisplayName8 );
- // Convert from UTF8 to unicode
- HBufC* unicodeDisplayName = EscapeUtils::ConvertToUnicodeFromUtf8L( *utf8DisplayName8 );
- CleanupStack::PopAndDestroy(utf8DisplayName8);
-
- return unicodeDisplayName;
+ return displayName;
}
// ---------------------------------------------------------------------------
@@ -784,9 +782,18 @@
// Escape decode
CSVPUriParser::EscapeDecodeSipUriL( utf8 );
+ // Convert from UTF8 to unicode
+ HBufC* unicode16 = EscapeUtils::ConvertToUnicodeFromUtf8L( *utf8 );
+ CleanupStack::PopAndDestroy( utf8 ); // CS:0
+ CleanupStack::PushL( unicode16 ); // CS:1
+ HBufC8* unicode8 = HBufC8::NewL( unicode16->Length() );
+ ( unicode8->Des() ).Copy( *unicode16 );
+ CleanupStack::PopAndDestroy( unicode16 ); // CS:0
+ CleanupStack::PushL( unicode8 ); // CS:1
+
// Create SIP From header
- CSIPFromHeader* originatorHdr = CSIPFromHeader::DecodeL( *utf8 );
- CleanupStack::PopAndDestroy( utf8 ); // CS:0
+ CSIPFromHeader* originatorHdr = CSIPFromHeader::DecodeL( *unicode8 );
+ CleanupStack::PopAndDestroy( unicode8 ); // CS:0
CleanupStack::PushL( originatorHdr ); // CS:1
// Extract URI, returned without angle brackets
@@ -800,9 +807,10 @@
{
uri8->Des().Delete( posSemiColon, uri8->Length() - posSemiColon );
}
-
- // Convert from UTF8 to unicode
- HBufC* uri = EscapeUtils::ConvertToUnicodeFromUtf8L( *uri8 );
+
+ // Convert to 16-bit
+ HBufC* uri = HBufC::NewL( uri8->Length() );
+ ( uri->Des() ).Copy( *uri8 );
CleanupStack::PopAndDestroy( uri8 ); // CS:0
// Handle anonymous