diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2011-11-01 18:40:18 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:18:32 -0300 |
commit | f189875436c5024fff6819aa9f2a651f48118599 (patch) | |
tree | ed460051ce61f10629ce6fd1d9544a96874c3290 /libshiboken | |
parent | f7412abd308626809d7acb348d36ac905bd4c519 (diff) |
Added a "to Python" converter function that gets a SbkConverter object.
Diffstat (limited to 'libshiboken')
-rw-r--r-- | libshiboken/sbkconverter.cpp | 11 | ||||
-rw-r--r-- | libshiboken/sbkconverter.h | 1 |
2 files changed, 9 insertions, 3 deletions
diff --git a/libshiboken/sbkconverter.cpp b/libshiboken/sbkconverter.cpp index 202ba2647..ef332831d 100644 --- a/libshiboken/sbkconverter.cpp +++ b/libshiboken/sbkconverter.cpp @@ -165,11 +165,16 @@ PyObject* pointerToPython(SbkConverter* converter, const void* cppIn) PyObject* referenceToPython(SbkObjectType* type, const void* cppIn) { + return referenceToPython(type->d->converter, cppIn); +} + +PyObject* referenceToPython(SbkConverter* converter, const void* cppIn) +{ assert(cppIn); // If it is a Object Type, produce a wrapper for it. - if (!type->d->converter->copyToPython) - return type->d->converter->pointerToPython(cppIn); + if (!converter->copyToPython) + return converter->pointerToPython(cppIn); // If it is a Value Type, try to find an existing wrapper, otherwise copy it as value to Python. PyObject* pyOut = (PyObject*)BindingManager::instance().retrieveWrapper(cppIn); @@ -177,7 +182,7 @@ PyObject* referenceToPython(SbkObjectType* type, const void* cppIn) Py_INCREF(pyOut); return pyOut; } - return type->d->converter->copyToPython(cppIn); + return converter->copyToPython(cppIn); } static inline PyObject* CopyCppToPython(SbkConverter* converter, const void* cppIn) diff --git a/libshiboken/sbkconverter.h b/libshiboken/sbkconverter.h index c400693b6..a5b8d113d 100644 --- a/libshiboken/sbkconverter.h +++ b/libshiboken/sbkconverter.h @@ -154,6 +154,7 @@ LIBSHIBOKEN_API PyObject* pointerToPython(SbkConverter* converter, const void* c * PyObject* pyVar = referenceToPython(SBKTYPE, &var); */ LIBSHIBOKEN_API PyObject* referenceToPython(SbkObjectType* type, const void* cppIn); +LIBSHIBOKEN_API PyObject* referenceToPython(SbkConverter* converter, const void* cppIn); /** * Retrieves the Python wrapper object for the given C++ value pointed by \p cppIn. |