aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Woehlke <matthew.woehlke@kitware.com>2015-02-20 16:31:23 -0500
committerJohn Cummings <jcummings2@users.sf.net>2015-03-07 13:04:26 +0000
commitaa39374b419c535dd56145ffebcef97c8c20eb39 (patch)
treea44e7f9bcc09449c62a8b39ab94b2d62519d4761
parent0fd6bc31ee9f2b9fe7d1bff40542ef8e51d1adac (diff)
Don't ignore classes in topology4.8
When building the class topology, don't skip classes, even if we are not going to generate code for them. This is necessary to get the topology order correct in a case such as C derived from B derived from A, where B is not generated, but initializing C depends on A being initialized first. Without this change, there is no guaranteed ordering between A and C in such a case. (In particular, this comes up in the Photon test; Photon::ValueIdentity derives from Photon::TemplateBase, which derives from Photon::Base. However, this was not being reflected in the topology, and as a result, it was just luck that the initialization order was correct anyway.) Change-Id: I4b99a50acef3b06e77100a70f2db8236d06af2be Reviewed-by: John Cummings <jcummings2@users.sf.net>
-rw-r--r--ApiExtractor/abstractmetabuilder.cpp3
1 files changed, 0 insertions, 3 deletions
diff --git a/ApiExtractor/abstractmetabuilder.cpp b/ApiExtractor/abstractmetabuilder.cpp
index ebb3134..f956d7c 100644
--- a/ApiExtractor/abstractmetabuilder.cpp
+++ b/ApiExtractor/abstractmetabuilder.cpp
@@ -2952,9 +2952,6 @@ AbstractMetaClassList AbstractMetaBuilder::classesTopologicalSorted(const Abstra
QRegExp regex1("\\(.*\\)");
QRegExp regex2("::.*");
foreach (AbstractMetaClass* clazz, classList) {
- if (clazz->isInterface() || !clazz->typeEntry()->generateCode())
- continue;
-
if (clazz->enclosingClass() && map.contains(clazz->enclosingClass()->qualifiedCppName()))
graph.addEdge(map[clazz->enclosingClass()->qualifiedCppName()], map[clazz->qualifiedCppName()]);