From 961c660ebd79cce4921c3c6674185a59daaaaf17 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 24 Nov 2020 15:44:49 +0100 Subject: [PATCH] Debugger: Use Values instead of addresses in encodeByteArrayHelper Change-Id: I4ee44f14b5b0d6afddb305a923d25a737f0d3d97 Reviewed-by: Christian Stenger --- share/qtcreator/debugger/dumper.py | 8 ++++---- share/qtcreator/debugger/qttypes.py | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py index cc3e8ddd59a..a6f02e8b527 100644 --- a/share/qtcreator/debugger/dumper.py +++ b/share/qtcreator/debugger/dumper.py @@ -619,7 +619,8 @@ class DumperBase(): elided, shown = self.computeLimit(size, limit) return elided, self.readMemory(data, 2 * shown) - def encodeByteArrayHelper(self, addr, limit): + def encodeByteArrayHelper(self, value, limit): + addr = self.extractPointer(value) data, size, alloc = self.qArrayDataHelper(addr) if alloc != 0: self.check(0 <= size and size <= alloc and alloc <= 100 * 1000 * 1000) @@ -670,15 +671,14 @@ class DumperBase(): return self.hexencode(bytes(self.readRawMemory(addr, size))) def encodeByteArray(self, value, limit=0): - elided, data = self.encodeByteArrayHelper(self.extractPointer(value), limit) + elided, data = self.encodeByteArrayHelper(value, limit) return data def qArrayData(self, value): return self.qArrayDataHelper(self.extractPointer(value)) def putByteArrayValue(self, value): - elided, data = self.encodeByteArrayHelper( - self.extractPointer(value), self.displayStringLimit) + elided, data = self.encodeByteArrayHelper(value, self.displayStringLimit) self.putValue(data, 'latin1', elided=elided) def encodeString(self, value, limit=0): diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py index da1f31e8939..36da4087a5b 100644 --- a/share/qtcreator/debugger/qttypes.py +++ b/share/qtcreator/debugger/qttypes.py @@ -72,7 +72,7 @@ def qdump__QByteArray(d, value): elided, shown = d.computeLimit(size, d.displayStringLimit) p = d.readMemory(data, shown) else: - elided, p = d.encodeByteArrayHelper(d.extractPointer(value), d.displayStringLimit) + elided, p = d.encodeByteArrayHelper(value, d.displayStringLimit) displayFormat = d.currentItemFormat() if displayFormat == DisplayFormat.Automatic or displayFormat == DisplayFormat.Latin1String: @@ -380,7 +380,7 @@ def qdump__QDateTime(d, value): tz = '' else: idBase = tzp + 2 * d.ptrSize() # [QSharedData] + [vptr] - elided, tz = d.encodeByteArrayHelper(d.extractPointer(idBase), limit=100) + elided, tz = d.encodeByteArray(idBase, limit=100) d.putValue('%s/%s/%s/%s/%s/%s' % (msecs, spec, offset, tz, status, 0), 'datetimeinternal') else: