Antoine Pitrou <pit...@free.fr> added the comment: > Yes, I was unclear. This refers to Python 3.2, not the 2.x series. > PyObject_AsReadBuffer (defined at line 270 in abstract.c, code of > routine attached) calls bf_getbuffer with the PyBUF_SIMPLE flag to > retrieve a bytes buffer. It then calls bf_releasebuffer before > returning the buffer to the caller. PyObject_AsCharBuffer and > PyObject_AsWriteBuffer do the same. It is not be exactly the same > issue discussed so far, but is closely related. > > Deprecating PyObject_AsReadBuffer is extreme,
I disagree. PyObject_As*Buffer functions are remnants of the old buffer API in Python 2.x. They are here only to ease porting of existing C code, but carefully written 3.x code should switch to PyObject_GetBuffer() (or one of the dedicated typecodes in PyArg_ParseTuple: "y*", "w*", etc.). > Redefining the PyBUF_SIMPLE flag to be like the old buffer protocol > warns those implementing a new buffer interface to avoid processing > PyBUF_SIMPLE requests when locking is required. Well, the new buffer API was designed precisely because the old API wasn't appropriate, so your proposal to revive the old API doesn't sound very compelling, to say the least. To restate things a bit more clearly: you should use PyObject_GetBuffer(), not any of the PyObject_As*Buffer functions. Perhaps you should explain why you care about the latter rather than the former. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue9602> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com