diff options
author | Hugo Lima <hugo.lima@openbossa.org> | 2010-01-14 15:58:04 -0200 |
---|---|---|
committer | Hugo Lima <hugo.lima@openbossa.org> | 2010-01-14 16:40:55 -0200 |
commit | 370a3b6cf2a57bf63c1d4041a0de5085485b37fe (patch) | |
tree | 338a3c83e075c85cd57209e6b1582b62a0e334df | |
parent | 67f0c4988020833210537757fbd51ecb84825ce8 (diff) |
Added a convenience overload for cpythonBaseName, with AbstractMetaClass as parameter.
-rw-r--r-- | cppgenerator.cpp | 10 | ||||
-rw-r--r-- | shibokengenerator.cpp | 5 | ||||
-rw-r--r-- | shibokengenerator.h | 1 |
3 files changed, 11 insertions, 5 deletions
diff --git a/cppgenerator.cpp b/cppgenerator.cpp index f6bae1c19..a7cf6d388 100644 --- a/cppgenerator.cpp +++ b/cppgenerator.cpp @@ -1431,11 +1431,11 @@ void CppGenerator::writeClassDefinition(QTextStream& s, const AbstractMetaClass* tp_dealloc = QString("(destructor)&(Shiboken::SbkBaseWrapper_Dealloc< %1 >)").arg(deallocClassName); AbstractMetaFunctionList ctors = metaClass->queryFunctions(AbstractMetaClass::Constructors); - tp_init = ctors.isEmpty() ? "0" : QString("(initproc)%1_Init").arg(className); + tp_init = ctors.isEmpty() ? "0" : cpythonFunctionName(ctors.first()); } if (metaClass->isPolymorphic()) - type_name_func = cpythonBaseName(metaClass->typeEntry()) + "_typeName"; + type_name_func = cpythonBaseName(metaClass) + "_typeName"; if (metaClass->hasPrivateDestructor()) tp_new = "0"; @@ -1444,7 +1444,7 @@ void CppGenerator::writeClassDefinition(QTextStream& s, const AbstractMetaClass* QString tp_richcompare = QString('0'); if (metaClass->hasComparisonOperatorOverload()) - tp_richcompare = cpythonBaseName(metaClass->typeEntry()) + "_richcompare"; + tp_richcompare = cpythonBaseName(metaClass) + "_richcompare"; // search for special functions ShibokenGenerator::clearTpFuncs(); @@ -1676,7 +1676,7 @@ void CppGenerator::writeTypeAsNumberDefinition(QTextStream& s, const AbstractMet void CppGenerator::writeRichCompareFunction(QTextStream& s, const AbstractMetaClass* metaClass) { - QString baseName = cpythonBaseName(metaClass->typeEntry()); + QString baseName = cpythonBaseName(metaClass); s << "static PyObject*" << endl; s << baseName << "_richcompare(PyObject* self, PyObject* other, int op)" << endl; s << '{' << endl; @@ -2274,7 +2274,7 @@ void CppGenerator::writeTypeConverterImpl(QTextStream& s, const TypeEntry* type) void CppGenerator::writeTypeNameFunction(QTextStream& s, const AbstractMetaClass* metaClass) { Indentation indent(INDENT); - s << "static const char* " << cpythonBaseName(metaClass->typeEntry()) << "_typeName(const void* cptr)\n{\n"; + s << "static const char* " << cpythonBaseName(metaClass) << "_typeName(const void* cptr)\n{\n"; s << INDENT << "return typeid(*reinterpret_cast<const " << metaClass->qualifiedCppName() << "*>(cptr)).name();\n"; s << "}\n\n"; } diff --git a/shibokengenerator.cpp b/shibokengenerator.cpp index dc2db0944..01b34d41c 100644 --- a/shibokengenerator.cpp +++ b/shibokengenerator.cpp @@ -360,6 +360,11 @@ QString ShibokenGenerator::cpythonBaseName(const AbstractMetaType* type) return cpythonBaseName(type->typeEntry()); } +QString ShibokenGenerator::cpythonBaseName(const AbstractMetaClass* metaClass) +{ + return cpythonBaseName(metaClass->typeEntry()); +} + QString ShibokenGenerator::cpythonBaseName(const TypeEntry* type) { QString baseName; diff --git a/shibokengenerator.h b/shibokengenerator.h index 83cf195f8..666a1e07f 100644 --- a/shibokengenerator.h +++ b/shibokengenerator.h @@ -211,6 +211,7 @@ public: /// before calling the C++ method. static bool shouldDereferenceArgumentPointer(const AbstractMetaArgument* arg); + QString cpythonBaseName(const AbstractMetaClass* metaClass); QString cpythonBaseName(const TypeEntry* type); QString cpythonBaseName(const AbstractMetaType* type); QString cpythonTypeName(const AbstractMetaClass* metaClass); |