A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2006-June/065651.html below:

[Python-Dev] How to fix the buffer object's broken char buffer support

[Python-Dev] How to fix the buffer object's broken char buffer support [Python-Dev] How to fix the buffer object's broken char buffer supportGuido van Rossum guido at python.org
Wed Jun 7 04:13:43 CEST 2006
On 6/6/06, Brett Cannon <brett at python.org> wrote:
> 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.

How ironic. the charbuffer slot was added late in the game -- now we'd
be ripping it out...

I suspect that there's a reason for it; but in Py3k it will
*definitely* be ripped out. Buffers will purely deal in byte then,
never in characters; you won't be able to get a buffer from a
(unicode) string at all.

Unhelpfully,

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4