diff options
author | Lauro Neto <lauro.neto@openbossa.org> | 2009-11-24 15:01:32 -0300 |
---|---|---|
committer | Marcelo Lira <marcelo.lira@openbossa.org> | 2009-11-25 13:56:28 -0300 |
commit | b973238682789a8f6dc68ec824df8c8e14be0ce9 (patch) | |
tree | c54192a19cf39ec2c6163066495ab431006af654 /overloaddata.cpp | |
parent | 8dcbf2b6ea6c79d0a984a0d87fb598c6d1fc62d8 (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.cpp | 14 |
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 |