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 topologysb-4.8-head
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 ebb3134ec..f956d7c08 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()]); |