diff options
author | Renato Filho <renato.filho@openbossa.org> | 2010-08-26 11:47:55 -0300 |
---|---|---|
committer | Renato Filho <renato.filho@openbossa.org> | 2010-08-26 16:16:24 -0300 |
commit | 47ab0d6bb7203c9a33c53d1b6d93f6305413c8e4 (patch) | |
tree | b2da044698c32f3027267c8b0d8fd4c9d0fbde2c /libshiboken | |
parent | 7a1ef1d7ec85a19698060497bdf5b58081fcb6d6 (diff) |
Generated original_name with "*" for object classes.
Use base type original_name to derived classes.
Fixes bug #311.
Reviewer: Luciano Wolf <luciano.wolf@openbossa.org>
Hugo Parente Lima <hugo.pl@gmail.com>
Diffstat (limited to 'libshiboken')
-rw-r--r-- | libshiboken/basewrapper.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
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; |