From 43c16539246a1ac6abc12b141ab32b5932e8c51e Mon Sep 17 00:00:00 2001 From: Hugo Parente Lima Date: Wed, 10 Nov 2010 15:30:08 -0200 Subject: Remove macro Shiboken_TypeCheck --- generator/headergenerator.cpp | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) (limited to 'generator/headergenerator.cpp') 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(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; } -- cgit v1.2.3