aboutsummaryrefslogtreecommitdiffstats
path: root/overloaddata.cpp
diff options
context:
space:
mode:
authorLauro Neto <lauro.neto@openbossa.org>2009-11-24 15:01:32 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2009-11-25 13:56:28 -0300
commitb973238682789a8f6dc68ec824df8c8e14be0ce9 (patch)
treec54192a19cf39ec2c6163066495ab431006af654 /overloaddata.cpp
parent8dcbf2b6ea6c79d0a984a0d87fb598c6d1fc62d8 (diff)
Add overload dependency on PyObject
PyObject_Check should be the last one in the overload type check Reviewed by Marcelo Lira <marcelo.lira@openbossa.org>
Diffstat (limited to 'overloaddata.cpp')
-rw-r--r--overloaddata.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/overloaddata.cpp b/overloaddata.cpp
index dbc8ef496..1be832413 100644
--- a/overloaddata.cpp
+++ b/overloaddata.cpp
@@ -48,11 +48,19 @@ void OverloadData::sortOverloads()
QSet<QPair<int, int> > deps;
QHash<QString, int> map;
QHash<int, OverloadData *>reverseMap;
+ bool checkPyObject = false;
+ int pyobjectIndex = 0;
int i = 0;
foreach(OverloadData *ov, m_nextOverloadData) {
map[ov->argType()->typeEntry()->name()] = i;
reverseMap[i] = ov;
+
+ if (!checkPyObject && ov->argType()->typeEntry()->name().contains("PyObject")) {
+ checkPyObject = true;
+ pyobjectIndex = i;
+ }
+
i++;
}
@@ -88,6 +96,12 @@ void OverloadData::sortOverloads()
}
}
}
+
+ /* Add dependency on PyObject, so its check is the last one (too generic) */
+ if (checkPyObject && !targetType->typeEntry()->name().contains("PyObject")) {
+ deps << qMakePair(pyobjectIndex,
+ map[targetType->typeEntry()->name()]);
+ }
}
// Special case for double(int i) (not tracked by m_generator->implicitConversions