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