Merged revisions 85082 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r85082 | antoine.pitrou | 2010-09-29 01:39:41 +0200 (mer., 29 sept. 2010) | 4 lines

  Buffers are not sequence objects (!). Put them in the abstract objects layers
  instead.
........
This commit is contained in:
Antoine Pitrou 2010-09-28 23:41:31 +00:00
parent 9207f1d634
commit debf4dbf07
4 changed files with 22 additions and 24 deletions

View file

@ -1,15 +1,16 @@
.. highlightlang:: c
Old buffer API
--------------
Old Buffer Protocol
-------------------
.. deprecated:: 3.0
These functions were part of the "old buffer protocol" API in Python 2.
In Python 3, these functions are still exposed for ease of porting code.
They act as a compatibility wrapper around the :ref:`new buffer API
<bufferobjects>`, but they don't give you control over the lifetime of
the resources acquired when a buffer is exported.
In Python 3, this protocol doesn't exist anymore but the functions are still
exposed to ease porting 2.x code. They act as a compatibility wrapper
around the :ref:`new buffer protocol <bufferobjects>`, but they don't give
you control over the lifetime of the resources acquired when a buffer is
exported.
Therefore, it is recommended that you call :cfunc:`PyObject_GetBuffer`
(or the ``y*`` or ``w*`` :ref:`format codes <arg-parsing>` with the
@ -17,10 +18,6 @@ Therefore, it is recommended that you call :cfunc:`PyObject_GetBuffer`
an object, and :cfunc:`PyBuffer_Release` when the buffer view can be released.
Buffer Protocol
===============
.. cfunction:: int PyObject_AsCharBuffer(PyObject *obj, const char **buffer, Py_ssize_t *buffer_len)
Returns a pointer to a read-only memory location usable as character-based