diff options
author | Hugo Parente Lima <hugo.pl@gmail.com> | 2011-09-15 19:10:22 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:17:15 -0300 |
commit | 9785f258d93b4976872a17fbf61bd27a4c4123cd (patch) | |
tree | dfd7b6b5926191077fcc7b218ba10fc7a3cbb57b /libshiboken | |
parent | eea010d0beeffed9c448111aba914f71e0018954 (diff) |
Port Shiboken buffer interface to Python3.
Diffstat (limited to 'libshiboken')
-rw-r--r-- | libshiboken/shibokenbuffer.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libshiboken/shibokenbuffer.cpp b/libshiboken/shibokenbuffer.cpp index 67b3ba726..6f41804ae 100644 --- a/libshiboken/shibokenbuffer.cpp +++ b/libshiboken/shibokenbuffer.cpp @@ -43,7 +43,19 @@ void* Shiboken::Buffer::getPointer(PyObject* pyObj, Py_ssize_t* size) PyObject* Shiboken::Buffer::newObject(void* memory, Py_ssize_t size, Type type) { +#ifdef IS_PY3K + Py_buffer view; + memset(&view, 0, sizeof(view)); + view.buf = memory; + view.len = size; + view.readonly = type == Shiboken::Buffer::ReadOnly; + view.ndim = 1; + Py_ssize_t shape[] = { size }; + view.shape = shape; + return PyMemoryView_FromBuffer(&view); +#else return type == ReadOnly ? PyBuffer_FromMemory(memory, size) : PyBuffer_FromReadWriteMemory(memory, size); +#endif } PyObject* Shiboken::Buffer::newObject(const void* memory, Py_ssize_t size) |