[Numpy-discussion] Segfault with python 3.2 structured array non-existent field

Christoph Gohlke cgohlke at uci.edu
Tue Mar 15 14:34:06 EDT 2011



On 3/15/2011 10:12 AM, Pauli Virtanen wrote:
> Tue, 15 Mar 2011 10:06:09 -0700, Matthew Brett wrote:
>> Sorry to ask, and I ask partly because I'm in the middle of a py3k port,
>> but is this the right fix to this problem?  I was confused by the
>> presence of the old PyString_AsString function.
>
> It's not a correct fix. The original code seems also wrong ("index" can
> either be Unicode or Bytes/String object), and will probably bomb when
> indexing with Unicode strings on Python 2. The right thing to do is to
> make it show the repr of the "index" object.
>
> The PyString_AsString is present, as it's mapped on Py3 to
> PyBytes_AsString by "npy_3kcompat.h".
>
> 	Pauli

I think the proposed patch does correctly fix ticket #1770 and the OP's 
problem under Python 3.

On Python 3.x str() and repr() are the same for byte strings:

>>> str(b's')
"b's'"
>>> repr(b's')
"b's'"

I agree that the code is broken for Python 2.x when indexing with a byte 
object.

Christoph




More information about the NumPy-Discussion mailing list