aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRenato Araujo Oliveira Filho <renato.filho@openbossa.org>2011-01-05 17:07:59 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-09 19:10:13 -0300
commitf5fb9ef30e72c3609e62034bdef3029abf9d2daf (patch)
treebd357471972821629056537c9d8acc7d339ee6cb
parentb6fdc5e8e6555aa7ee2cfe709fc68725ddc68ea4 (diff)
Fixed polymorphic value for classes.sb-0.9.2
Fixes bug #587. Reviewer: Marcelo Lira <marcelo.lira@openbossa.org> Hugo Parente Lima <hugo.pl@gmail.com>
-rw-r--r--abstractmetabuilder.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/abstractmetabuilder.cpp b/abstractmetabuilder.cpp
index 780ea7009..ea1fed6b0 100644
--- a/abstractmetabuilder.cpp
+++ b/abstractmetabuilder.cpp
@@ -2778,6 +2778,10 @@ AbstractMetaClassList AbstractMetaBuilder::classesTopologicalSorted(const Abstra
AbstractMetaClassList bases = getBaseClasses(clazz);
foreach(AbstractMetaClass* baseClass, bases) {
+ // Fix polymorphic expression
+ if (clazz->baseClass() == baseClass)
+ clazz->setBaseClass(baseClass);
+
if (map.contains(baseClass->qualifiedCppName()))
graph.addEdge(map[baseClass->qualifiedCppName()], map[clazz->qualifiedCppName()]);
}