diff options
Diffstat (limited to 'src/plugins/debugger/watchdata.cpp')
-rw-r--r-- | src/plugins/debugger/watchdata.cpp | 74 |
1 files changed, 37 insertions, 37 deletions
diff --git a/src/plugins/debugger/watchdata.cpp b/src/plugins/debugger/watchdata.cpp index badcf601c3..c3506a0561 100644 --- a/src/plugins/debugger/watchdata.cpp +++ b/src/plugins/debugger/watchdata.cpp @@ -35,21 +35,21 @@ namespace Debugger { namespace Internal { -bool isPointerType(const QByteArray &type) +bool isPointerType(const QString &type) { return type.endsWith('*') || type.endsWith("* const"); } -bool isCharPointerType(const QByteArray &type) +bool isCharPointerType(const QString &type) { return type == "char *" || type == "const char *" || type == "char const *"; } -bool isIntType(const QByteArray &type) +bool isIntType(const QString &type) { if (type.isEmpty()) return false; - switch (type.at(0)) { + switch (type.at(0).unicode()) { case 'b': return type == "bool"; case 'c': @@ -97,12 +97,12 @@ bool isIntType(const QByteArray &type) } } -bool isFloatType(const QByteArray &type) +bool isFloatType(const QString &type) { return type == "float" || type == "double" || type == "qreal"; } -bool isIntOrFloatType(const QByteArray &type) +bool isIntOrFloatType(const QString &type) { return isIntType(type) || isFloatType(type); } @@ -176,7 +176,7 @@ void WatchItem::setValue(const QString &value0) // pointer type information is available in the 'type' // column. No need to duplicate it here. - if (value.startsWith(QLatin1Char('(') + QLatin1String(type) + QLatin1String(") 0x"))) + if (value.startsWith('(' + type + ") 0x")) value = value.section(QLatin1Char(' '), -1, -1); setValueUnneeded(); @@ -184,7 +184,7 @@ void WatchItem::setValue(const QString &value0) enum GuessChildrenResult { HasChildren, HasNoChildren, HasPossiblyChildren }; -static GuessChildrenResult guessChildren(const QByteArray &type) +static GuessChildrenResult guessChildren(const QString &type) { if (isIntOrFloatType(type)) return HasNoChildren; @@ -197,7 +197,7 @@ static GuessChildrenResult guessChildren(const QByteArray &type) return HasPossiblyChildren; } -void WatchItem::setType(const QByteArray &str, bool guessChildrenFromType) +void WatchItem::setType(const QString &str, bool guessChildrenFromType) { type = str.trimmed(); bool changed = true; @@ -242,7 +242,7 @@ QString WatchItem::toString() const str << QLatin1Char('{'); if (!iname.isEmpty()) str << "iname=\"" << iname << doubleQuoteComma; - if (!name.isEmpty() && name != QLatin1String(iname)) + if (!name.isEmpty() && name != iname) str << "name=\"" << name << doubleQuoteComma; if (address) { str.setIntegerBase(16); @@ -306,11 +306,11 @@ QString WatchItem::shadowedName(const QString &name, int seen) return shadowedNameFormat().arg(name).arg(seen); } -QByteArray WatchItem::hexAddress() const +QString WatchItem::hexAddress() const { if (address) - return QByteArray("0x") + QByteArray::number(address, 16); - return QByteArray(); + return "0x" + QString::number(address, 16); + return QString(); } template <class T> @@ -325,9 +325,9 @@ QString decodeItemHelper(const double &t) } template <class T> -void decodeArrayHelper(WatchItem *item, const QByteArray &rawData, int size, const QByteArray &childType) +void decodeArrayHelper(WatchItem *item, const QString &rawData, int size, const QString &childType) { - const QByteArray ba = QByteArray::fromHex(rawData); + const QByteArray ba = QByteArray::fromHex(rawData.toUtf8()); const T *p = (const T *) ba.data(); for (int i = 0, n = ba.size() / sizeof(T); i < n; ++i) { WatchItem *child = new WatchItem; @@ -340,8 +340,8 @@ void decodeArrayHelper(WatchItem *item, const QByteArray &rawData, int size, con } } -static void decodeArrayData(WatchItem *item, const QByteArray &rawData, - const DebuggerEncoding &encoding, const QByteArray &childType) +static void decodeArrayData(WatchItem *item, const QString &rawData, + const DebuggerEncoding &encoding, const QString &childType) { switch (encoding.type) { case DebuggerEncoding::HexEncodedSignedInteger: @@ -426,14 +426,14 @@ void WatchItem::parseHelper(const GdbMi &input, bool maySort) if (iname.startsWith("local.") && iname.count('.') == 1) // Solve one common case of adding 'class' in // *(class X*)0xdeadbeef for gdb. - exp = name.toLatin1(); + exp = name; else exp = "*(" + gdbQuoteTypes(type) + "*)" + hexAddress(); } } mi = input["value"]; - QByteArray enc = input["valueencoded"].data(); + QString enc = input["valueencoded"].data(); if (mi.isValid() || !enc.isEmpty()) { setValue(decodeData(mi.data(), enc)); } else { @@ -474,7 +474,7 @@ void WatchItem::parseHelper(const GdbMi &input, bool maySort) mi = input["arraydata"]; if (mi.isValid()) { DebuggerEncoding encoding(input["arrayencoding"].data()); - QByteArray childType = input["childtype"].data(); + QString childType = input["childtype"].data(); decodeArrayData(this, mi.data(), encoding, childType); } else { const GdbMi children = input["children"]; @@ -495,13 +495,13 @@ void WatchItem::parseHelper(const GdbMi &input, bool maySort) if (childNumChild.isValid()) child->setHasChildren(childNumChild.toInt() > 0); GdbMi name = subinput["name"]; - QByteArray nn; + QString nn; if (name.isValid()) { nn = name.data(); - child->name = QString::fromLatin1(nn); + child->name = nn; } else { nn.setNum(i); - child->name = QString::fromLatin1("[%1]").arg(i); + child->name = QString("[%1]").arg(i); } GdbMi iname = subinput["iname"]; if (iname.isValid()) @@ -512,7 +512,7 @@ void WatchItem::parseHelper(const GdbMi &input, bool maySort) child->address = addressBase + i * addressStep; child->exp = "*(" + gdbQuoteTypes(child->type) + "*)" + child->hexAddress(); } - QByteArray key = subinput["key"].data(); + QString key = subinput["key"].data(); if (!key.isEmpty()) child->name = decodeData(key, subinput["keyencoded"].data()); child->parseHelper(subinput, maySort); @@ -531,14 +531,14 @@ void WatchItem::parse(const GdbMi &data, bool maySort) GdbMi wname = data["wname"]; if (wname.isValid()) // Happens (only) for watched expressions. - name = QString::fromUtf8(QByteArray::fromHex(wname.data())); + name = fromHex(wname.data()); else - name = QString::fromLatin1(data["name"].data()); + name = data["name"].data(); parseHelper(data, maySort); if (wname.isValid()) - exp = name.toUtf8(); + exp = name; } WatchItem *WatchItem::parentItem() const @@ -564,14 +564,14 @@ QString WatchItem::toToolTip() const str << "<html><body><table>"; formatToolTipRow(str, tr("Name"), name); formatToolTipRow(str, tr("Expression"), expression()); - formatToolTipRow(str, tr("Internal Type"), QLatin1String(type)); + formatToolTipRow(str, tr("Internal Type"), type); bool ok; const quint64 intValue = value.toULongLong(&ok); if (ok && intValue) { - formatToolTipRow(str, tr("Value"), QLatin1String("(dec) ") + value); - formatToolTipRow(str, QString(), QLatin1String("(hex) ") + QString::number(intValue, 16)); - formatToolTipRow(str, QString(), QLatin1String("(oct) ") + QString::number(intValue, 8)); - formatToolTipRow(str, QString(), QLatin1String("(bin) ") + QString::number(intValue, 2)); + formatToolTipRow(str, tr("Value"), "(dec) " + value); + formatToolTipRow(str, QString(), "(hex) " + QString::number(intValue, 16)); + formatToolTipRow(str, QString(), "(oct) " + QString::number(intValue, 8)); + formatToolTipRow(str, QString(), "(bin) " + QString::number(intValue, 2)); } else { QString val = value; if (val.size() > 1000) { @@ -589,7 +589,7 @@ QString WatchItem::toToolTip() const formatToolTipRow(str, tr("Array Index"), QString::number(arrayIndex)); if (size) formatToolTipRow(str, tr("Static Object Size"), tr("%n bytes", 0, size)); - formatToolTipRow(str, tr("Internal ID"), QLatin1String(internalName())); + formatToolTipRow(str, tr("Internal ID"), internalName()); str << "</table></body></html>"; return res; } @@ -627,7 +627,7 @@ quint64 WatchItem::realAddress() const return address; } -QByteArray WatchItem::internalName() const +QString WatchItem::internalName() const { if (arrayIndex >= 0) { if (const WatchItem *p = parentItem()) @@ -646,14 +646,14 @@ QString WatchItem::realName() const QString WatchItem::expression() const { if (!exp.isEmpty()) - return QString::fromLatin1(exp); + return exp; if (quint64 addr = realAddress()) { if (!type.isEmpty()) - return QString::fromLatin1("*(%1*)0x%2").arg(QLatin1String(type)).arg(addr, 0, 16); + return QString("*(%1*)0x%2").arg(type).arg(addr, 0, 16); } const WatchItem *p = parentItem(); if (p && !p->exp.isEmpty()) - return QString::fromLatin1("(%1).%2").arg(QString::fromLatin1(p->exp), name); + return QString("(%1).%2").arg(p->exp, name); return name; } |