forked from qt-creator/qt-creator
Debugger: Delay template argument retrieval from native types
For performance reasons. They are often not needed. Change-Id: I8a7bb03583b3ec2479a3691486c9c02f70ad014e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -199,7 +199,8 @@ class Dumper(DumperBase):
|
||||
if code == TypeCode.Enum:
|
||||
tdata.enumDisplay = lambda intval, addr, form: \
|
||||
self.nativeTypeEnumDisplay(nativeType, intval, form)
|
||||
tdata.templateArguments = self.listTemplateParameters(nativeType.name())
|
||||
tdata.templateArguments = lambda: \
|
||||
self.listTemplateParameters(nativeType.name())
|
||||
self.registerType(typeId, tdata) # Fix up fields and template args
|
||||
return self.Type(self, typeId)
|
||||
|
||||
|
@@ -3500,7 +3500,7 @@ class DumperBase():
|
||||
self.lalignment = None # Function returning alignment of this struct
|
||||
self.lbitsize = None
|
||||
self.ltarget = None # Inner type for arrays
|
||||
self.templateArguments = []
|
||||
self.templateArguments = None
|
||||
self.code = None
|
||||
self.name = None
|
||||
self.typeId = None
|
||||
@@ -3629,7 +3629,7 @@ class DumperBase():
|
||||
tdata = self.typeData()
|
||||
if tdata is None:
|
||||
return self.dumper.listTemplateParameters(self.typeId)
|
||||
return tdata.templateArguments
|
||||
return tdata.templateArguments()
|
||||
|
||||
def templateArgument(self, position):
|
||||
tdata = self.typeData()
|
||||
@@ -3644,8 +3644,8 @@ class DumperBase():
|
||||
#DumperBase.warn('RES: %s' % res.typeId)
|
||||
return res
|
||||
#DumperBase.warn('TA: %s %s' % (position, self.typeId))
|
||||
#DumperBase.warn('ARGS: %s' % tdata.templateArguments)
|
||||
return tdata.templateArguments[position]
|
||||
#DumperBase.warn('ARGS: %s' % tdata.templateArguments())
|
||||
return tdata.templateArguments()[position]
|
||||
|
||||
def simpleEncoding(self):
|
||||
res = {
|
||||
@@ -3983,7 +3983,7 @@ class DumperBase():
|
||||
tdata = self.TypeData(self)
|
||||
tdata.name = typish
|
||||
tdata.typeId = typish
|
||||
tdata.templateArguments = self.listTemplateParameters(typish)
|
||||
tdata.templateArguments = lambda: self.listTemplateParameters(typish)
|
||||
if size is not None:
|
||||
tdata.lbitsize = 8 * size
|
||||
if typish.endswith('*'):
|
||||
|
@@ -421,7 +421,8 @@ class Dumper(DumperBase):
|
||||
self.nativeStructAlignment(nativeType)
|
||||
tdata.lfields = lambda value: \
|
||||
self.listMembers(value, nativeType)
|
||||
tdata.templateArguments = self.listTemplateParameters(nativeType)
|
||||
tdata.templateArguments = lambda: \
|
||||
self.listTemplateParameters(nativeType)
|
||||
self.registerType(typeId, tdata) # Fix up fields and template args
|
||||
# warn('CREATE TYPE: %s' % typeId)
|
||||
#else:
|
||||
|
@@ -488,7 +488,8 @@ class Dumper(DumperBase):
|
||||
self.nativeStructAlignment(nativeType)
|
||||
tdata.lfields = lambda value: \
|
||||
self.listMembers(value, nativeType)
|
||||
tdata.templateArguments = self.listTemplateParametersHelper(nativeType)
|
||||
tdata.templateArguments = lambda: \
|
||||
self.listTemplateParametersHelper(nativeType)
|
||||
elif code == lldb.eTypeClassFunction:
|
||||
tdata.code = TypeCode.Function
|
||||
elif code == lldb.eTypeClassMemberPointer:
|
||||
|
Reference in New Issue
Block a user