summaryrefslogtreecommitdiffstats
path: root/Modules/_codecsmodule.c
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2015-03-20 07:00:36 (GMT)
committerSerhiy Storchaka <storchaka@gmail.com>2015-03-20 07:00:36 (GMT)
commit8490f5acfee7269ac0eb41257a3a214dfb31a655 (patch)
tree7cd039c0f6418571d9f8cc89741c3ec4938f2ebc /Modules/_codecsmodule.c
parent0eac13052c498e21cbb60ed321e5a9ea10d07b35 (diff)
downloadcpython-8490f5acfee7269ac0eb41257a3a214dfb31a655.zip
cpython-8490f5acfee7269ac0eb41257a3a214dfb31a655.tar.gz
cpython-8490f5acfee7269ac0eb41257a3a214dfb31a655.tar.bz2
Issue #23001: Few functions in modules mmap, ossaudiodev, socket, ssl, and
codecs, that accepted only read-only bytes-like object now accept writable bytes-like object too.
Diffstat (limited to 'Modules/_codecsmodule.c')
-rw-r--r--Modules/_codecsmodule.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/Modules/_codecsmodule.c b/Modules/_codecsmodule.c
index bf408af..b9268ce 100644
--- a/Modules/_codecsmodule.c
+++ b/Modules/_codecsmodule.c
@@ -208,15 +208,18 @@ static PyObject *
escape_decode(PyObject *self,
PyObject *args)
{
+ Py_buffer pbuf;
const char *errors = NULL;
- const char *data;
- Py_ssize_t size;
+ PyObject *result;
- if (!PyArg_ParseTuple(args, "s#|z:escape_decode",
- &data, &size, &errors))
+ if (!PyArg_ParseTuple(args, "s*|z:escape_decode",
+ &pbuf, &errors))
return NULL;
- return codec_tuple(PyBytes_DecodeEscape(data, size, errors, 0, NULL),
- size);
+ result = codec_tuple(
+ PyBytes_DecodeEscape(pbuf.buf, pbuf.len, errors, 0, NULL),
+ pbuf.len);
+ PyBuffer_Release(&pbuf);
+ return result;
}
static PyObject *