summaryrefslogtreecommitdiff
path: root/share
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@digia.com>2013-10-24 15:09:36 +0200
committerhjk <hjk121@nokiamail.com>2013-10-24 17:14:54 +0200
commit9a57a41a7ad8d9f23ed37aca871edabd3abb729f (patch)
tree19bf9a3c75b6bb8b322f55a3d7f48a8962f0fb5c /share
parent9b88e0db32c1e1861d11de9fe186ad360d3716cb (diff)
downloadqt-creator-9a57a41a7ad8d9f23ed37aca871edabd3abb729f.tar.gz
Fix QDateTime dumper with various Qt versions and bitness
Change-Id: Iba15c1b27dc83e8949fef5fd25de61cc2b20be30 Reviewed-by: hjk <hjk121@nokiamail.com>
Diffstat (limited to 'share')
-rw-r--r--share/qtcreator/debugger/qttypes.py9
1 files changed, 6 insertions, 3 deletions
diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py
index fb6e6b18f6..f961fe4af5 100644
--- a/share/qtcreator/debugger/qttypes.py
+++ b/share/qtcreator/debugger/qttypes.py
@@ -235,8 +235,8 @@ def qdump__QDateTime(d, value):
# This relies on the Qt4/Qt5 internal structure layout:
# {sharedref(4), ...
base = d.dereferenceValue(value)
- dateBase = base + d.ptrSize() # Only QAtomicInt, but will be padded.
if qtVersion >= 0x050200:
+ dateBase = base + d.ptrSize() # Only QAtomicInt, but will be padded.
ms = d.extractInt64(dateBase)
offset = d.extractInt(dateBase + 12)
isValid = ms > 0
@@ -248,11 +248,14 @@ def qdump__QDateTime(d, value):
# QDateTimePrivate:
# - QAtomicInt ref; (padded on 64 bit)
# - [QDate date;]
- # - - uint jd in Qt 4, qint64 in Qt 5.0 and Qt 5.2; padded on 64 bit
+ # - - uint jd in Qt 4, qint64 in Qt 5.0 and Qt 5.1; padded on 64 bit
# - [QTime time;]
# - - uint mds;
# - Spec spec;
- dateSize = 4 if qtVersion < 0x050000 and d.is32bit() else 8
+ dateSize = 8 if qtVersion >= 0x050000 else 4 # Qt5: qint64, Qt4 uint
+ # 4 byte padding after 4 byte QAtomicInt if we are on 64 bit and QDate is 64 bit
+ refPlusPadding = 8 if qtVersion >= 0x050000 and not d.is32bit() else 4
+ dateBase = base + refPlusPadding
timeBase = dateBase + dateSize
mds = d.extractInt(timeBase)
isValid = mds > 0