From e22d0e82dfaf35b28e52f3b261c23f7315ced0ba Mon Sep 17 00:00:00 2001 From: Orgad Shaneh <orgad.shaneh@audiocodes.com> Date: Tue, 31 Mar 2015 00:06:09 +0300 Subject: [PATCH] Dumper: Add a dumper for CPlusPlus::PointerType Change-Id: Ibc868a54326647184a30a796a487e218db7e968f Reviewed-by: hjk <hjk@theqtcompany.com> --- share/qtcreator/debugger/creatortypes.py | 26 ++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/share/qtcreator/debugger/creatortypes.py b/share/qtcreator/debugger/creatortypes.py index 207625718e0..29efb46728d 100644 --- a/share/qtcreator/debugger/creatortypes.py +++ b/share/qtcreator/debugger/creatortypes.py @@ -30,6 +30,21 @@ from dumper import * +def stripTypeName(value): + type = value.type + try: + type = type.target() + except: + pass + return str(type.unqualified()) + +def extractPointerType(d, value): + postfix = "" + while stripTypeName(value) == "CPlusPlus::PointerType": + postfix += "*" + value = d.downcast(value["_elementType"]["_type"]) + return readLiteral(d, value["_name"]) + postfix + def readTemplateName(d, value): name = readLiteral(d, value["_identifier"]) + "<" args = value["_templateArguments"] @@ -39,12 +54,7 @@ def readTemplateName(d, value): for i in range(size): if i > 0: name += ", " - typeVal = d.downcast(start[i]["_type"]) - postfix = "" - while str(typeVal.type.target().unqualified()) == "CPlusPlus::PointerType": - postfix += "*" - typeVal = d.downcast(typeVal["_elementType"]["_type"]) - name += readLiteral(d, typeVal["_name"]) + postfix + name += extractPointerType(d, d.downcast(start[i]["_type"])) name += ">" return name @@ -126,6 +136,10 @@ def qdump__CPlusPlus__NamedType(d, value): d.putBetterType(value.type) d.putPlainChildren(value) +def qdump__CPlusPlus__PointerType(d, value): + d.putValue(d.hexencode(extractPointerType(d, value)), Hex2EncodedLatin1) + d.putPlainChildren(value) + def qdump__CPlusPlus__TemplateNameId(d, value): dumpLiteral(d, value) d.putBetterType(value.type) -- GitLab