[Python-Dev] The buffer() function

Thomas Heller theller at python.net
Thu Jul 13 20:51:42 CEST 2006


Josiah Carlson schrieb:
> Thomas Heller <theller at python.net> wrote:
>> But that was not the question.  What about the status of the buffer function?
> 
>>From what I understand, it is relatively safe as long as you don't
> mutate an object while there is a buffer attached to it.
> 
> That is:
> 
>     import array
>     a = array.array(...)
>     b = buffer(a)
>     for i in xrange(...):
>         a.extend(a[:])
>     print str(b)
> 
> ... may cause you some problems (the a[:] bit was to pointer movement
> movement on realloc).  Those problems will depend on your platform.

AFAIK, the buffer object now does not hold a pointer into the object
it has been constructed from, it only gets it when its needed.

IMO Objects/bufferobject.c, revision 35400 is considered safe.

The checkin comment (by nascheme) was, more than 2 years ago:
"Make buffer objects based on mutable objects (like array) safe."

Thomas



More information about the Python-Dev mailing list