aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHugo Lima <hugo.lima@openbossa.org>2010-01-14 15:58:04 -0200
committerHugo Lima <hugo.lima@openbossa.org>2010-01-14 16:40:55 -0200
commit370a3b6cf2a57bf63c1d4041a0de5085485b37fe (patch)
tree338a3c83e075c85cd57209e6b1582b62a0e334df
parent67f0c4988020833210537757fbd51ecb84825ce8 (diff)
Added a convenience overload for cpythonBaseName, with AbstractMetaClass as parameter.
-rw-r--r--cppgenerator.cpp10
-rw-r--r--shibokengenerator.cpp5
-rw-r--r--shibokengenerator.h1
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);