diff options
author | Hugo Lima <hugo.lima@openbossa.org> | 2010-02-04 20:02:10 -0200 |
---|---|---|
committer | Hugo Lima <hugo.lima@openbossa.org> | 2010-02-08 16:15:24 -0200 |
commit | 7e5fdc89ce33d301ef63c471b527442b760b6fc1 (patch) | |
tree | 7eb1c13e744737fb8f838b218eedc88aa847a5b9 | |
parent | 658f6cbbb19ec9c2a2f8a0a0d703d8107ce9d722 (diff) |
Do not try to call constructors created on typesystem by add-function tag.
Reviewed by Renato Araújo <renato.filho@openbossa.org>
-rw-r--r-- | cppgenerator.cpp | 7 | ||||
-rw-r--r-- | headergenerator.cpp | 7 |
2 files changed, 12 insertions, 2 deletions
diff --git a/cppgenerator.cpp b/cppgenerator.cpp index f230d41c1..b90ac88d8 100644 --- a/cppgenerator.cpp +++ b/cppgenerator.cpp @@ -2339,7 +2339,12 @@ void CppGenerator::writeTypeConverterImpl(QTextStream& s, const TypeEntry* type) QString pyTypeName = cpythonTypeName(type); - AbstractMetaFunctionList implicitConvs = implicitConversions(type); + AbstractMetaFunctionList implicitConvs; + foreach (AbstractMetaFunction* func, implicitConversions(type)) { + if (!func->isUserAdded()) + implicitConvs << func; + } + bool hasImplicitConversions = !implicitConvs.isEmpty(); if (hasImplicitConversions) { diff --git a/headergenerator.cpp b/headergenerator.cpp index de2965956..ba87317d6 100644 --- a/headergenerator.cpp +++ b/headergenerator.cpp @@ -161,7 +161,12 @@ void HeaderGenerator::writeTypeConverterDecl(QTextStream& s, const TypeEntry* ty const AbstractMetaClass* metaClass = classes().findClass(type->name()); bool isAbstractOrObjectType = (metaClass && metaClass->isAbstract()) || type->isObject(); - bool isValueTypeWithImplConversions = type->isValue() && !implicitConversions(type).isEmpty(); + AbstractMetaFunctionList implicitConvs; + foreach (AbstractMetaFunction* func, implicitConversions(type)) { + if (!func->isUserAdded()) + implicitConvs << func; + } + bool isValueTypeWithImplConversions = type->isValue() && !implicitConvs.isEmpty(); s << "struct "; if (isValueTypeWithImplConversions) |