diff options
author | Hugo Parente Lima <hugo.pl@gmail.com> | 2010-11-10 15:30:08 -0200 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:08:57 -0300 |
commit | 43c16539246a1ac6abc12b141ab32b5932e8c51e (patch) | |
tree | d70519cad37b4c1289131fbc265dd07c932bd955 /generator | |
parent | 899f9c2ccfc6967867f6d5f1cad925011a2f756b (diff) |
Remove macro Shiboken_TypeCheck
Diffstat (limited to 'generator')
-rw-r--r-- | generator/headergenerator.cpp | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/generator/headergenerator.cpp b/generator/headergenerator.cpp index 4afbc1d7d..d9560d2ab 100644 --- a/generator/headergenerator.cpp +++ b/generator/headergenerator.cpp @@ -558,23 +558,17 @@ void HeaderGenerator::writeTypeConverterImpl(QTextStream& s, const TypeEntry* ty s << "inline " << type->name() << " Shiboken::Converter<" << type->name() << " >::toCpp(PyObject* pyobj)" << endl; s << '{' << endl; - s << INDENT << "if (!Shiboken_TypeCheck(pyobj, " << type->name() << ")) {" << endl; + s << INDENT << "if (PyObject_TypeCheck(pyobj, SbkType<" << type->qualifiedCppName() << ">()))" << endl; { Indentation indent(INDENT); - s << INDENT << "SbkObjectType* shiboType = reinterpret_cast<SbkObjectType*>(SbkType<"; - s << type->name() << " >());" << endl; + s << INDENT << "return *" << cpythonWrapperCPtr(type, "pyobj") << ';' << endl; } - bool firstImplicitIf = true; + foreach (const AbstractMetaFunction* ctor, implicitConvs) { if (ctor->isModifiedRemoved()) continue; - Indentation indent(INDENT); - s << INDENT; - if (firstImplicitIf) - firstImplicitIf = false; - else - s << "else "; + s << INDENT << "else "; QString typeCheck; QString toCppConv; @@ -597,20 +591,12 @@ void HeaderGenerator::writeTypeConverterImpl(QTextStream& s, const TypeEntry* ty } { - Indentation indent(INDENT); - s << INDENT << "else if (shiboType->ext_isconvertible && shiboType->ext_tocpp && shiboType->ext_isconvertible(pyobj)) {" << endl; + s << INDENT << "else" << endl; { Indentation indent(INDENT); - s << INDENT << type->name() << "* cptr = reinterpret_cast<" << type->name() << "*>(shiboType->ext_tocpp(pyobj));" << endl; - s << INDENT << "std::auto_ptr<" << type->name() << " > cptr_auto_ptr(cptr);" << endl; - s << INDENT << "return *cptr;" << endl; + s << INDENT << "return Shiboken::ValueTypeConverter<" << type->qualifiedCppName() << " >::toCpp(pyobj);" << endl; } - s << INDENT << '}' << endl; } - - s << INDENT << '}' << endl; - - s << INDENT << "return *" << cpythonWrapperCPtr(type, "pyobj") << ';' << endl; s << '}' << endl << endl; } |