diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index 55aaff207df1912281b3bc4a63daa00842402421..cf37f4f965ff8baaf64da664710304463c12c17d 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 8a0bc863659b283bf428e1220558e51fa6c9f36c..914cba7b160def9ac5d8ab78c9a93bff45e5a099 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 79e9ecbd60b20bd2aff3d096f7d712520c3bf7df..b647408982327e7c8acca2c2acfd7d11f01fc8b3 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):