aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cppgenerator.cpp5
-rw-r--r--libshiboken/basewrapper.cpp8
2 files changed, 10 insertions, 3 deletions
diff --git a/cppgenerator.cpp b/cppgenerator.cpp
index 62545dd0c..7aca126f2 100644
--- a/cppgenerator.cpp
+++ b/cppgenerator.cpp
@@ -2479,7 +2479,10 @@ void CppGenerator::writeClassDefinition(QTextStream& s, const AbstractMetaClass*
s << INDENT << "/*cpp_dtor*/ " << cpp_dtor << ',' << endl;
s << INDENT << "/*is_multicpp*/ 0," << endl;
s << INDENT << "/*is_user_type*/ 0," << endl;
- s << INDENT << "/*original_name*/ \"" << metaClass->qualifiedCppName() << "\"," << endl;
+ QString suffix;
+ if (metaClass->typeEntry()->isObject() || metaClass->typeEntry()->isQObject())
+ suffix = "*";
+ s << INDENT << "/*original_name*/ \"" << metaClass->qualifiedCppName() << suffix << "\"," << endl;
s << INDENT << "/*user_data*/ 0" << endl;
s << "};" << endl;
s << "} //extern" << endl;
diff --git a/libshiboken/basewrapper.cpp b/libshiboken/basewrapper.cpp
index e351c47fc..e5e6d3dc4 100644
--- a/libshiboken/basewrapper.cpp
+++ b/libshiboken/basewrapper.cpp
@@ -304,7 +304,8 @@ PyObject* SbkBaseWrapper_TpNew(PyTypeObject* subtype, PyObject*, PyObject*)
Shiboken::AutoDecRef emptyTuple(PyTuple_New(0));
SbkBaseWrapper* self = reinterpret_cast<SbkBaseWrapper*>(PyBaseObject_Type.tp_new(subtype, emptyTuple, 0));
- int numBases = reinterpret_cast<SbkBaseWrapperType*>(subtype)->is_multicpp ? getNumberOfCppBaseClasses(subtype) : 1;
+ SbkBaseWrapperType* sbkType = reinterpret_cast<SbkBaseWrapperType*>(subtype);
+ int numBases = sbkType->is_multicpp ? getNumberOfCppBaseClasses(subtype) : 1;
self->cptr = new void*[numBases];
std::memset(self->cptr, 0, sizeof(void*)*numBases);
self->hasOwnership = 1;
@@ -542,7 +543,10 @@ PyObject* SbkBaseWrapperType_TpNew(PyTypeObject* metatype, PyObject* args, PyObj
newType->cpp_dtor = 0;
newType->is_multicpp = 1;
}
- newType->original_name = "";
+ if (bases.size() == 1)
+ newType->original_name = bases.front()->original_name;
+ else
+ newType->original_name = "object";
newType->user_data = 0;
newType->d_func = 0;
newType->is_user_type = 1;