aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRenato Filho <renato.filho@openbossa.org>2011-09-28 15:49:29 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:18:18 -0300
commit7681b23a5c4fb578ec050f65945bfe87c37c36e5 (patch)
tree273a2eafa4c910285ef25fd4d59bc0c73986d49f
parent274c66a017891b6c2f01c159929e9849be1407e7 (diff)
Updated Shiboken::Buffer API to Py3k.
-rw-r--r--libshiboken/shibokenbuffer.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/libshiboken/shibokenbuffer.cpp b/libshiboken/shibokenbuffer.cpp
index 6f41804ae..5ee2ef774 100644
--- a/libshiboken/shibokenbuffer.cpp
+++ b/libshiboken/shibokenbuffer.cpp
@@ -34,11 +34,23 @@ void* Shiboken::Buffer::getPointer(PyObject* pyObj, Py_ssize_t* size)
const void* buffer = 0;
Py_ssize_t bufferSize = 0;
+#ifdef IS_PY3K
+ Py_buffer view;
+ printf("VAI PEGAR O BUFFER\n");
+ if (PyObject_GetBuffer(pyObj, &view, PyBUF_ND) == 0) {
+ printf("PEGOU O BUFFER\n");
+ return view.buf;
+ } else {
+ printf("FALHA TOTAL\n");
+ return 0;
+ }
+#else
PyObject_AsReadBuffer(pyObj, &buffer, &bufferSize);
if (size)
*size = bufferSize;
return const_cast<void*>(buffer);
+#endif
}
PyObject* Shiboken::Buffer::newObject(void* memory, Py_ssize_t size, Type type)