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)

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)

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);
    }

(The zero is the "readonly" parameter)

Is all of this wrong?

-- 
Amaury Forgeot d'Arc
_______________________________________________
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