aboutsummaryrefslogtreecommitdiffstats
path: root/tests/samplebinding/handle_conversions.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/samplebinding/handle_conversions.h')
-rw-r--r--tests/samplebinding/handle_conversions.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/tests/samplebinding/handle_conversions.h b/tests/samplebinding/handle_conversions.h
index 2c6008077..a6e561359 100644
--- a/tests/samplebinding/handle_conversions.h
+++ b/tests/samplebinding/handle_conversions.h
@@ -13,7 +13,11 @@ struct Converter<HANDLE>
static inline bool isConvertible(PyObject* pyObj)
{
+#ifdef IS_PY3K
+ return PyCapsule_CheckExact(pyObj);
+#else
return PyCObject_Check(pyObj);
+#endif
}
static inline PyObject* toPython(void* cppobj)
@@ -24,13 +28,20 @@ struct Converter<HANDLE>
static inline PyObject* toPython(HANDLE cppobj)
{
+#ifdef IS_PY3K
+ return PyCapsule_New(cppobj, 0, 0);
+#else
return PyCObject_FromVoidPtr(cppobj, 0);
+#endif
}
static inline HANDLE toCpp(PyObject* pyobj)
{
-
+#ifdef IS_PY3K
+ return (HANDLE) PyCapsule_GetPointer(pyobj, 0);
+#else
return (HANDLE) PyCObject_AsVoidPtr(pyobj);
+#endif
}
};
}