[Python-Dev] Deprecate the buffer object?
Guido van Rossum
guido at python.org
Wed Oct 29 18:11:49 EST 2003
> Okay. Perhaps I am missing something but would fixing it be as
> simple as adding another field to the tp_as_buffer struct?
>
> /* references returned by the buffer functins are valid while
> * the object remains alive */
> #define PyBuffer_FLAG_SAFE 1
>
> Then in stringobject.c (and elsewhere as appropriate):
>
> static PyBufferProcs buffer_as_buffer = {
> (getreadbufferproc)buffer_getreadbuf,
> (getwritebufferproc)buffer_getwritebuf,
> (getsegcountproc)buffer_getsegcount,
> (getcharbufferproc)buffer_getcharbuf,
> PyBuffer_FLAG_SAFE,
> };
>
> Then change bufferobject so that it can only be created from objects
> that set PyBuffer_FLAG_SAFE.
I don't know if this is enough, but if it is, I'd recommend adding the
flag bitto tp_flags rather than extending the buffer structure (since
you'd need to allocate an extra bit for tp_flags anyway to indicate
the longer buffer struct).
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-Dev
mailing list