diff options
author | Renato Filho <renato.filho@openbossa.org> | 2010-05-18 11:40:04 -0300 |
---|---|---|
committer | Renato Filho <renato.filho@openbossa.org> | 2010-05-18 15:52:23 -0300 |
commit | b71a7511d8b76922b738c0f8102a85d27b673b8e (patch) | |
tree | 11063d50c70aaf87486e8ad5a50309dfb2d94a38 /headergenerator.cpp | |
parent | 960774e63afe0a9386383c71c4831fab7c42e790 (diff) |
API fixes.
* Export enums without macro
* Declare virtual destructor on all classes with virtual functions
* Fix extern "C" declaration scope
Reviewer: Hugo Parente Lima <hugo.lima@openbossa.org>,
Marcelo Lira <marcelo.lira@openbossa.org>
Diffstat (limited to 'headergenerator.cpp')
-rw-r--r-- | headergenerator.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/headergenerator.cpp b/headergenerator.cpp index 27086bc99..3310227f3 100644 --- a/headergenerator.cpp +++ b/headergenerator.cpp @@ -83,11 +83,15 @@ void HeaderGenerator::generateClass(QTextStream& s, const AbstractMetaClass* met if (isCopyable(metaClass)) writeCopyCtor(s, metaClass); - foreach (AbstractMetaFunction *func, filterFunctions(metaClass)) + bool hasVirtualFunction = false; + foreach (AbstractMetaFunction *func, filterFunctions(metaClass)) { + if (func->isVirtual()) + hasVirtualFunction = true; writeFunction(s, func); + } //destructor - s << INDENT << (metaClass->hasVirtualDestructor() ? "virtual " : "") << "~" << wrapperName << "();" << endl; + s << INDENT << (metaClass->hasVirtualDestructor() || hasVirtualFunction ? "virtual " : "") << "~" << wrapperName << "();" << endl; writeCodeSnips(s, metaClass->typeEntry()->codeSnips(), CodeSnip::Declaration, TypeSystem::NativeCode); |