summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/AlreadyConsideredClassContainer.h
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@me.com>2014-03-24 16:06:39 +0100
committerErik Verbruggen <erik.verbruggen@digia.com>2014-03-27 13:46:55 +0100
commitb0618281ecaa71a99dea7235c3c955b2135cc127 (patch)
tree100f2aee0d2bf17637508b468df150a017f2206e /src/libs/cplusplus/AlreadyConsideredClassContainer.h
parent186570a25999964e338e55eed08e5a0843a74650 (diff)
downloadqt-creator-b0618281ecaa71a99dea7235c3c955b2135cc127.tar.gz
C++: Do type and name equality checking in a safe manner.
Change the TypeMatcher to also match names, and use two "block" lists in SafeMatcher to prevent infinite recursion. Task-number: QTCREATORBUG-11240 Change-Id: I0367ae795ee6be579b83aeb8d46723c877e4aa75 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Diffstat (limited to 'src/libs/cplusplus/AlreadyConsideredClassContainer.h')
-rw-r--r--src/libs/cplusplus/AlreadyConsideredClassContainer.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libs/cplusplus/AlreadyConsideredClassContainer.h b/src/libs/cplusplus/AlreadyConsideredClassContainer.h
index 4ada3866c4..cc819ab80a 100644
--- a/src/libs/cplusplus/AlreadyConsideredClassContainer.h
+++ b/src/libs/cplusplus/AlreadyConsideredClassContainer.h
@@ -1,6 +1,8 @@
#ifndef CPLUSPLUS_ALREADYCONSIDEREDCLASSCONTAINER_H
#define CPLUSPLUS_ALREADYCONSIDEREDCLASSCONTAINER_H
+#include <cplusplus/SafeMatcher.h>
+
#include <QSet>
namespace CPlusPlus {
@@ -21,8 +23,9 @@ public:
if (_container.contains(item))
return true;
+ SafeMatcher matcher;
foreach (const T *existingItem, _container) {
- if (existingItem->isEqualTo(item))
+ if (Matcher::match(existingItem, item, &matcher))
return true;
}