Amaury Forgeot d'Arc wrote:
> Stop me if I'm wrong, but I thought that bytes objects are immutable
> (they are based on the PyStringType, after all)
>

> But I was surprised by this code in test_socket.py::
> 
>         buf = b" "*1024
>         nbytes = self.cli_conn.recv_into(buf)
> 

I'm not sure about this one...

> And this in getargs.c::
> 
>       case 'w': { /* memory buffer, read-write access */
>               ...
>                     ((temp = (*pb->bf_getbuffer)(arg, &view,
>                                                  PyBUF_SIMPLE)) != 0) ||
> 
> (I'd expect PyBUF_READONLY)

This one is O.K. because 'w' is requesting read-write access.  An error 
will occur if the object does not allow it.

> 
> And this in stringobject.c::
> 
>     static int
>     string_buffer_getbuffer(PyStringObject *self, Py_buffer *view, int flags)
>     {
>       return PyBuffer_FillInfo(view, (void *)self->ob_sval, Py_SIZE(self),
>                                0, flags);
>     }
> 

You are right that the 0 here should be a 1 for the immutable bytes object.


Good job.

-Travis O.

_______________________________________________
Python-3000 mailing list
Python-3000@python.org
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to