aboutsummaryrefslogtreecommitdiffstats
path: root/libshiboken
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2011-11-01 18:40:18 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:18:32 -0300
commitf189875436c5024fff6819aa9f2a651f48118599 (patch)
treeed460051ce61f10629ce6fd1d9544a96874c3290 /libshiboken
parentf7412abd308626809d7acb348d36ac905bd4c519 (diff)
Added a "to Python" converter function that gets a SbkConverter object.
Diffstat (limited to 'libshiboken')
-rw-r--r--libshiboken/sbkconverter.cpp11
-rw-r--r--libshiboken/sbkconverter.h1
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.