diff options
author | Erik Verbruggen <erik.verbruggen@me.com> | 2014-03-24 16:06:39 +0100 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@digia.com> | 2014-03-27 13:46:55 +0100 |
commit | b0618281ecaa71a99dea7235c3c955b2135cc127 (patch) | |
tree | 100f2aee0d2bf17637508b468df150a017f2206e /src/libs/cplusplus/AlreadyConsideredClassContainer.h | |
parent | 186570a25999964e338e55eed08e5a0843a74650 (diff) | |
download | qt-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.h | 5 |
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; } |