From c3a4912d00ca970e7303f2dc5bbd4126ad59b082 Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Date: Wed, 27 Jan 2010 15:27:20 +0100
Subject: [PATCH] Debugger/CDB: Avoid string conversions.

---
 src/plugins/debugger/cdb/cdbassembler.cpp          | 8 ++++----
 src/plugins/debugger/cdb/cdbsymbolgroupcontext.cpp | 7 ++++---
 2 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/plugins/debugger/cdb/cdbassembler.cpp b/src/plugins/debugger/cdb/cdbassembler.cpp
index db21fbf1e76..93ffd0d34c3 100644
--- a/src/plugins/debugger/cdb/cdbassembler.cpp
+++ b/src/plugins/debugger/cdb/cdbassembler.cpp
@@ -76,15 +76,15 @@ bool getRegisters(CIDebugControl *ctl,
     if (!count)
         return true;
     // Retrieve names
-    WCHAR wszBuf[MAX_PATH];
+    char buf[MAX_PATH];
     for (ULONG r = 0; r < count; r++) {
-        hr = ireg->GetDescriptionWide(r, wszBuf, MAX_PATH - 1, 0, 0);
+        hr = ireg->GetDescription(r, buf, MAX_PATH - 1, 0, 0);
         if (FAILED(hr)) {
-            *errorMessage= CdbCore::msgComFailed("GetDescriptionWide", hr);
+            *errorMessage= CdbCore::msgComFailed("GetDescription", hr);
             return false;
         }
         Register reg;
-        reg.name = QString::fromUtf16(reinterpret_cast<const ushort *>(wszBuf)).toLatin1();
+        reg.name = QByteArray(buf);
         registers->push_back(reg);
     }
     // get values
diff --git a/src/plugins/debugger/cdb/cdbsymbolgroupcontext.cpp b/src/plugins/debugger/cdb/cdbsymbolgroupcontext.cpp
index dc9cf017907..2547918b38d 100644
--- a/src/plugins/debugger/cdb/cdbsymbolgroupcontext.cpp
+++ b/src/plugins/debugger/cdb/cdbsymbolgroupcontext.cpp
@@ -86,12 +86,13 @@ QTextStream &operator<<(QTextStream &str, const DEBUG_SYMBOL_PARAMETERS &p)
     return str;
 }
 
-static inline QString hexSymbolOffset(CIDebugSymbolGroup *sg, unsigned long index)
+static inline QByteArray hexSymbolOffset(CIDebugSymbolGroup *sg, unsigned long index)
 {
     ULONG64 rc = 0;
     if (FAILED(sg->GetSymbolOffset(index, &rc)))
         rc = 0;
-    return QLatin1String("0x") + QString::number(rc, 16);
+
+    return QByteArray("0x") + QByteArray::number(rc, 16);
 }
 
 // A helper function to extract a string value from a member function of
@@ -487,7 +488,7 @@ WatchData CdbSymbolGroupContext::watchDataAt(unsigned long index) const
     // (std::map extends std::tree<>... Remove them for display only.
     const QString fullShadowedName = WatchData::shadowedName(name, shadowedNumber);
     wd.name = WatchData::shadowedName(removeInnerTemplateType(name), shadowedNumber);
-    wd.addr = hexSymbolOffset(m_symbolGroup, index).toLatin1();
+    wd.addr = hexSymbolOffset(m_symbolGroup, index);
     const QString type = getSymbolString(m_symbolGroup, &IDebugSymbolGroup2::GetSymbolTypeNameWide, index);    
     wd.setType(type);    
     // Check for uninitialized variables at level 0 only.
-- 
GitLab