From e94e403052dc8d4867ee5c16fbd60a25ac5fef91 Mon Sep 17 00:00:00 2001 From: hjk <hjk121@nokiamail.com> Date: Wed, 23 Oct 2013 16:28:02 +0200 Subject: [PATCH] Debugger: Fix QList<QStringList> dumper for LLDB QStringList is movable in Qt 5 Change-Id: I5b0bee9c55e54f62c93a8515af0f56cdafed78bf Reviewed-by: hjk <hjk121@nokiamail.com> --- share/qtcreator/debugger/dumper.py | 34 +++++++++++++------------- share/qtcreator/debugger/gdbbridge.py | 5 +--- share/qtcreator/debugger/lldbbridge.py | 5 ++-- 3 files changed, 20 insertions(+), 24 deletions(-) diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index 55aaff207df..cf37f4f965f 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -255,23 +255,6 @@ class UnnamedSubItem(SubItem): self.iname = "%s.%s" % (self.d.currentIName, component) self.name = None -movableTypes = set([ - "QBrush", "QBitArray", "QByteArray", "QCustomTypeInfo", "QChar", "QDate", - "QDateTime", "QFileInfo", "QFixed", "QFixedPoint", "QFixedSize", - "QHashDummyValue", "QIcon", "QImage", "QLine", "QLineF", "QLatin1Char", - "QLocale", "QMatrix", "QModelIndex", "QPoint", "QPointF", "QPen", - "QPersistentModelIndex", "QResourceRoot", "QRect", "QRectF", "QRegExp", - "QSize", "QSizeF", "QString", "QTime", "QTextBlock", "QUrl", "QVariant", - "QXmlStreamAttribute", "QXmlStreamNamespaceDeclaration", - "QXmlStreamNotationDeclaration", "QXmlStreamEntityDeclaration" -]) - -movableTypes5 = set([ - "QStringList" -]) - - - class DumperBase: def __init__(self): self.isCdb = False @@ -473,6 +456,23 @@ class DumperBase: except: pass + + def isKnownMovableType(self, type): + if type in ( + "QBrush", "QBitArray", "QByteArray", "QCustomTypeInfo", "QChar", "QDate", + "QDateTime", "QFileInfo", "QFixed", "QFixedPoint", "QFixedSize", + "QHashDummyValue", "QIcon", "QImage", "QLine", "QLineF", "QLatin1Char", + "QLocale", "QMatrix", "QModelIndex", "QPoint", "QPointF", "QPen", + "QPersistentModelIndex", "QResourceRoot", "QRect", "QRectF", "QRegExp", + "QSize", "QSizeF", "QString", "QTime", "QTextBlock", "QUrl", "QVariant", + "QXmlStreamAttribute", "QXmlStreamNamespaceDeclaration", + "QXmlStreamNotationDeclaration", "QXmlStreamEntityDeclaration" + ): + return True + + return type == "QStringList" and self.qtVersion() >= 0x050000 + + def cleanAddress(addr): if addr is None: return "<no address>" diff --git a/share/qtcreator/debugger/gdbbridge.py b/share/qtcreator/debugger/gdbbridge.py index 8a0bc863659..914cba7b160 100644 --- a/share/qtcreator/debugger/gdbbridge.py +++ b/share/qtcreator/debugger/gdbbridge.py @@ -1415,10 +1415,7 @@ class Dumper(DumperBase): return True if self.isSimpleType(type): return True - typeName = self.stripNamespaceFromType(str(type)) - if typeName in movableTypes: - return True - return self.qtVersion() >= 0x050000 and typeName in movableTypes5 + return self.isKnownMovableType(self.stripNamespaceFromType(str(type))) def putIntItem(self, name, value): with SubItem(self, name): diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 79e9ecbd60b..b6474089823 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -574,10 +574,9 @@ class Dumper(DumperBase): return format def isMovableType(self, type): - if type.GetTypeClass() in (lldb.eTypeClassBuiltin, - lldb.eTypeClassPointer): + if type.GetTypeClass() in (lldb.eTypeClassBuiltin, lldb.eTypeClassPointer): return True - return self.stripNamespaceFromType(type.GetName()) in movableTypes + return self.isKnownMovableType(self.stripNamespaceFromType(type.GetName())) def putIntItem(self, name, value): with SubItem(self, name): -- GitLab