diff options
author | Roberto Raggi <qtc-committer@nokia.com> | 2009-02-09 20:59:39 +0100 |
---|---|---|
committer | Roberto Raggi <qtc-committer@nokia.com> | 2009-02-09 20:59:39 +0100 |
commit | 0a9a67cf547701a278f19dbe2b9fb0a70a36cdb8 (patch) | |
tree | 0230503d31cd8f3a362b2c43038385b428201d85 /src/plugins/cpptools/cppcodecompletion.cpp | |
parent | 0d1624d4d1d5ce4e350476fbc86a361fad2ef6b8 (diff) | |
download | qt-creator-0a9a67cf547701a278f19dbe2b9fb0a70a36cdb8.tar.gz |
Fixes: Possible crash when completing constructors.
Diffstat (limited to 'src/plugins/cpptools/cppcodecompletion.cpp')
-rw-r--r-- | src/plugins/cpptools/cppcodecompletion.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp index 8988fe1236..aef68ee6d3 100644 --- a/src/plugins/cpptools/cppcodecompletion.cpp +++ b/src/plugins/cpptools/cppcodecompletion.cpp @@ -896,7 +896,10 @@ bool CppCodeCompletion::completeConstructors(Class *klass) for (unsigned i = 0; i < klass->memberCount(); ++i) { Symbol *member = klass->memberAt(i); - if (! member->type()->isFunctionType()) + FullySpecifiedType memberTy = member->type(); + if (! memberTy) + continue; + else if (! memberTy->isFunctionType()) continue; else if (! member->identity()) continue; @@ -930,8 +933,12 @@ bool CppCodeCompletion::completeQtMethod(CPlusPlus::FullySpecifiedType, QSet<QString> signatures; foreach (TypeOfExpression::Result p, results) { FullySpecifiedType ty = p.first; + if (! ty) + continue; + if (ReferenceType *refTy = ty->asReferenceType()) ty = refTy->elementType(); + if (PointerType *ptrTy = ty->asPointerType()) ty = ptrTy->elementType(); else |