As a side note, It always seemed to me that the bf_getcharbuffer´s semantics 
were poorly defined.  At least in the 2.3 documentation.  Has that, and the 
need for it, changed recently?

Kristján

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Brett Cannon
Sent: 6. júní 2006 22:30
To: Python Dev
Subject: [Python-Dev] How to fix the buffer object's broken char buffersupport

If you run ``import array; int(buffer(array.array('c')))`` the interpreter will 
segfault.  While investigating this I discovered that buffer objects, for their 
tp_as_buffer->bf_getcharbuffer, return the result by calling the wrapped object 
bf_getreadbuffer or bf_getwritebuffer.  This is wrong since it is essentially 
redirecting the expected call to the wrong tp_as_buffer slot for the wrapped 
object.  Plus it doesn't have Py_TPFLAGS_HAVE_GETCHARBUFFER defined.

I see two options here.  One is to remove the bf_getcharbuffer slot from the 
buffer object.  The other option is to fix it so that it only returns 
bf_getcharbuffer and doesn't redirect improperly (this also brings up the issue 
if Py_TPFLAGS_HAVE_GETCHARBUFFER should then also be defined for buffer 
objects).

Since I don't use buffer objects I don't know if it is better to fix this or 
just rip it out.

-Brett
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/kristjan%40ccpgames.com
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to