diff options
author | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2017-08-07 12:36:22 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2017-08-08 07:03:59 +0000 |
commit | 63e16d6346c2525fc93234437c9a1f2d7da63f34 (patch) | |
tree | b5ad971d3cd660a397a6c81cbae3db1f9feaf564 /src/libs/cplusplus/LookupContext.cpp | |
parent | 58aef639594de8f7e0593fa48fc41a2a04a69544 (diff) | |
download | qt-creator-63e16d6346c2525fc93234437c9a1f2d7da63f34.tar.gz |
C++: Limit number of nested class instantiations
...to avoid out of memory crashes.
Task-number: QTCREATORBUG-18649
Change-Id: I5e121bf4be0fd0c01a97a182ed07ee7552fb68ac
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/libs/cplusplus/LookupContext.cpp')
-rw-r--r-- | src/libs/cplusplus/LookupContext.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp index 0e9fccead2..3f09e7b1a2 100644 --- a/src/libs/cplusplus/LookupContext.cpp +++ b/src/libs/cplusplus/LookupContext.cpp @@ -1387,6 +1387,8 @@ void ClassOrNamespace::instantiateNestedClasses(ClassOrNamespace *enclosingTempl void ClassOrNamespace::NestedClassInstantiator::instantiate(ClassOrNamespace *enclosingTemplateClass, ClassOrNamespace *enclosingTemplateClassInstantiation) { + if (_alreadyConsideredNestedClassInstantiations.size() >= 3) + return; if (_alreadyConsideredNestedClassInstantiations.contains(enclosingTemplateClass)) return; _alreadyConsideredNestedClassInstantiations.insert(enclosingTemplateClass); |