diff options
author | Matthew Woehlke <matthew.woehlke@kitware.com> | 2015-02-20 16:31:23 -0500 |
---|---|---|
committer | John Cummings <jcummings2@users.sf.net> | 2015-03-07 13:04:26 +0000 |
commit | aa39374b419c535dd56145ffebcef97c8c20eb39 (patch) | |
tree | a44e7f9bcc09449c62a8b39ab94b2d62519d4761 | |
parent | 0fd6bc31ee9f2b9fe7d1bff40542ef8e51d1adac (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.cpp | 3 |
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()]); |