diff options
author | Hugo Parente Lima <hugo.pl@gmail.com> | 2011-05-12 18:55:53 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:15:22 -0300 |
commit | f26d9a83d5255d9ff8ce251790227ebe996d21c8 (patch) | |
tree | b70245e02ce31a35df8a39fa1d3be279029fa9de /generator | |
parent | 587bac87604aadd4d7aedba2a911bfcac9671fe3 (diff) |
Don't segfault when running with Qt4.5.
Reviewer: Lauro Moura <lauro.neto@openbossa.org>
Marcelo Lira <marcelo.lira@openbossa.org>
Diffstat (limited to 'generator')
-rw-r--r-- | generator/shibokengenerator.cpp | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/generator/shibokengenerator.cpp b/generator/shibokengenerator.cpp index fd814dfe2..de96d03ac 100644 --- a/generator/shibokengenerator.cpp +++ b/generator/shibokengenerator.cpp @@ -392,7 +392,8 @@ QString ShibokenGenerator::guessScopeForDefaultValue(const AbstractMetaFunction* if (arg->type()->isEnum()) { const AbstractMetaEnum* metaEnum = findAbstractMetaEnum(arg->type()); - prefix = resolveScopePrefix(metaEnum->enclosingClass(), value); + if (metaEnum) + prefix = resolveScopePrefix(metaEnum->enclosingClass(), value); } else if (arg->type()->isFlags()) { static QRegExp numberRegEx("^\\d+$"); // Numbers to flags if (numberRegEx.exactMatch(value)) { @@ -1467,10 +1468,12 @@ AbstractMetaFunctionList ShibokenGenerator::getMethodsWithBothStaticAndNonStatic AbstractMetaClassList ShibokenGenerator::getBaseClasses(const AbstractMetaClass* metaClass) const { AbstractMetaClassList baseClasses; - foreach (QString parent, metaClass->baseClassNames()) { - AbstractMetaClass* clazz = classes().findClass(parent); - if (clazz) - baseClasses << clazz; + if (metaClass) { + foreach (QString parent, metaClass->baseClassNames()) { + AbstractMetaClass* clazz = classes().findClass(parent); + if (clazz) + baseClasses << clazz; + } } return baseClasses; } @@ -1487,10 +1490,12 @@ const AbstractMetaClass* ShibokenGenerator::getMultipleInheritingClass(const Abs AbstractMetaClassList ShibokenGenerator::getAllAncestors(const AbstractMetaClass* metaClass) const { AbstractMetaClassList result; - AbstractMetaClassList baseClasses = getBaseClasses(metaClass); - foreach (AbstractMetaClass* base, baseClasses) { - result.append(base); - result.append(getAllAncestors(base)); + if (metaClass) { + AbstractMetaClassList baseClasses = getBaseClasses(metaClass); + foreach (AbstractMetaClass* base, baseClasses) { + result.append(base); + result.append(getAllAncestors(base)); + } } return result; } |