aboutsummaryrefslogtreecommitdiffstats
path: root/generator
diff options
context:
space:
mode:
authorHugo Parente Lima <hugo.pl@gmail.com>2011-05-12 18:55:53 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:15:22 -0300
commitf26d9a83d5255d9ff8ce251790227ebe996d21c8 (patch)
treeb70245e02ce31a35df8a39fa1d3be279029fa9de /generator
parent587bac87604aadd4d7aedba2a911bfcac9671fe3 (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.cpp23
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;
}