diff options
| author | David Schulz <david.schulz@digia.com> | 2013-07-01 08:31:09 +0200 |
|---|---|---|
| committer | David Schulz <david.schulz@digia.com> | 2013-07-01 09:27:39 +0200 |
| commit | 924115d735df538c5c454c1f7d11345e2eb34aaf (patch) | |
| tree | a2099c45664e266159354b3aa139836a870da770 | |
| parent | 1fad00f9991b86c3a329410c95f148b6ce3ef0d3 (diff) | |
| download | qt-creator-924115d735df538c5c454c1f7d11345e2eb34aaf.tar.gz | |
Cdbext: Fix QMap dumper for Qt5...
... when the symbol was added as an expression.
It seems that calling GetSymbolTypeName somehow destroys the red-black tree,
so moved the call before creating the tree.
Change-Id: Iefb187df4e7f99cfd95195a6ac9a4d8c64fa2365
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| -rw-r--r-- | src/libs/qtcreatorcdbext/containers.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/libs/qtcreatorcdbext/containers.cpp b/src/libs/qtcreatorcdbext/containers.cpp index 58e87b0a2c..8fbd64f0a5 100644 --- a/src/libs/qtcreatorcdbext/containers.cpp +++ b/src/libs/qtcreatorcdbext/containers.cpp @@ -943,6 +943,12 @@ static inline AbstractSymbolGroupNodePtrVector qMap5Nodes(const SymbolGroupValue SymbolGroupValue root = head["left"]; if (!root) return AbstractSymbolGroupNodePtrVector(); + + const std::string nodeType = qHashNodeType(v, "Node"); + const std::string nodePtrType = nodeType + " *"; + if (SymbolGroupValue::verbose) + DebugPrint() << v.type() << "," << nodeType; + RedBlackTreeNode *nodeTree = RedBlackTreeNode::buildMapRecursion(root, head.address(), 0, "left", "right"); if (!nodeTree) @@ -951,10 +957,6 @@ static inline AbstractSymbolGroupNodePtrVector qMap5Nodes(const SymbolGroupValue nodeTree->debug(DebugPrint(), debugQMap5Node); VectorIndexType i = 0; // Finally convert them into real nodes 'QHashNode<K,V> (potentially expensive) - const std::string nodeType = qHashNodeType(v, "Node"); - const std::string nodePtrType = nodeType + " *"; - if (SymbolGroupValue::verbose) - DebugPrint() << v.type() << "," << nodeType; AbstractSymbolGroupNodePtrVector result; result.reserve(count); for (const RedBlackTreeNode *n = nodeTree->begin() ; n && i < count; n = RedBlackTreeNode::next(n), i++) { |
