[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [smokegen/parentintrospection] generators/smoke: don't generate the xenum_QGlobalSpace forward decl
From:       Arno Rehn <arno () arnorehn ! de>
Date:       2012-12-25 0:00:13
Message-ID: 20121225000013.30E93A6091 () git ! kde ! org
[Download RAW message or body]

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/writeSmokeDataFile.cpp index 122eb86..97bac61 100644
--- a/generators/smoke/writeSmokeDataFile.cpp
+++ b/generators/smoke/writeSmokeDataFile.cpp
@@ -296,7 +296,9 @@ void SmokeDataFile::write()
         inheritanceIndex[&klass] = idx;
     }
     out << "};\n\n";
-    
+
+    Class& globalSpace = classes["QGlobalSpace"];
+
     // xenum functions
     out << "// These are the xenum functions for manipulating enum pointers\n";
     QSet<QString> enumClassesHandled;
@@ -318,8 +320,13 @@ void SmokeDataFile::write()
             smokeClassName.replace("::", "__");
             out << "void xenum_" << smokeClassName << "(Smoke::EnumOperation, \
                Smoke::Index, void*&, long&);\n";
         } else if (smokeClassName.isEmpty() && it.value().access() != \
                Access_private) {
-            if (enumClassesHandled.contains("QGlobalSpace"))
+            // see if we have actually put the enum into QGlobalSpace (might not be \
the case if it's already handled +            // in a parent module)
+            if (   enumClassesHandled.contains("QGlobalSpace")
+                || !globalSpace.children().contains(const_cast<Enum*>(&it.value())))
+            {
                 continue;
+            }
             out << "void xenum_QGlobalSpace(Smoke::EnumOperation, Smoke::Index, \
void*&, long&);\n";  enumClassesHandled << "QGlobalSpace";
         }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic