Git commit 5de2ebfe5de0f4ea3c7fe2a41aed335dfc4dc7ec by Arno Rehn. Committed on 25/12/2012 at 00:59. Pushed by arnorehn into branch 'parentintrospection'. don't generate the xenum_QGlobalSpace forward decl if there are no enums in QGlobalSpace M +9 -2 generators/smoke/writeSmokeDataFile.cpp http://commits.kde.org/smokegen/5de2ebfe5de0f4ea3c7fe2a41aed335dfc4dc7ec diff --git a/generators/smoke/writeSmokeDataFile.cpp b/generators/smoke/wri= teSmokeDataFile.cpp index 122eb86..97bac61 100644 --- a/generators/smoke/writeSmokeDataFile.cpp +++ b/generators/smoke/writeSmokeDataFile.cpp @@ -296,7 +296,9 @@ void SmokeDataFile::write() inheritanceIndex[&klass] =3D idx; } out << "};\n\n"; - = + + Class& globalSpace =3D classes["QGlobalSpace"]; + // xenum functions out << "// These are the xenum functions for manipulating enum pointer= s\n"; QSet enumClassesHandled; @@ -318,8 +320,13 @@ void SmokeDataFile::write() smokeClassName.replace("::", "__"); out << "void xenum_" << smokeClassName << "(Smoke::EnumOperati= on, Smoke::Index, void*&, long&);\n"; } else if (smokeClassName.isEmpty() && it.value().access() !=3D Ac= cess_private) { - if (enumClassesHandled.contains("QGlobalSpace")) + // see if we have actually put the enum into QGlobalSpace (mig= ht not be the case if it's already handled + // in a parent module) + if ( enumClassesHandled.contains("QGlobalSpace") + || !globalSpace.children().contains(const_cast(&it.= value()))) + { continue; + } out << "void xenum_QGlobalSpace(Smoke::EnumOperation, Smoke::I= ndex, void*&, long&);\n"; enumClassesHandled << "QGlobalSpace"; }