[Python-Dev] How to fix the buffer object's broken char buffersupport (original) (raw)
Kristján V. Jónsson kristjan at ccpgames.com
Wed Jun 7 11:37:38 CEST 2006
- Previous message: [Python-Dev] Comparing closures and arguments (was Re: Scoping vs augmented assignment vs sets (Re: 'fast locals' in Python 2.5)
- Next message: [Python-Dev] How to fix the buffer object's broken char buffersupport
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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: python-dev-bounces+kristjan=ccpgames.com at python.org [mailto:python-dev-bounces+kristjan=ccpgames.com at python.org] 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 at python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/kristjan%40ccpgames.com
- Previous message: [Python-Dev] Comparing closures and arguments (was Re: Scoping vs augmented assignment vs sets (Re: 'fast locals' in Python 2.5)
- Next message: [Python-Dev] How to fix the buffer object's broken char buffersupport
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]