# HG changeset patch # User Gregory Szorc <gregory.sz...@gmail.com> # Date 1475956949 -7200 # Sat Oct 08 22:02:29 2016 +0200 # Node ID a91e68ef608ec814bd853f31920fe1f75993dd40 # Parent 5ce286c00dcefb7c432265417eb3d5d1fe368296 parsers: convert PyString* to PyBytes*
With this change, we no longer have any occurrences of "PyString" in our C extensions. diff --git a/mercurial/parsers.c b/mercurial/parsers.c --- a/mercurial/parsers.c +++ b/mercurial/parsers.c @@ -609,39 +609,39 @@ static PyObject *pack_dirstate(PyObject /* Figure out how much we need to allocate. */ for (nbytes = 40, pos = 0; PyDict_Next(map, &pos, &k, &v);) { PyObject *c; - if (!PyString_Check(k)) { + if (!PyBytes_Check(k)) { PyErr_SetString(PyExc_TypeError, "expected string key"); goto bail; } - nbytes += PyString_GET_SIZE(k) + 17; + nbytes += PyBytes_GET_SIZE(k) + 17; c = PyDict_GetItem(copymap, k); if (c) { - if (!PyString_Check(c)) { + if (!PyBytes_Check(c)) { PyErr_SetString(PyExc_TypeError, "expected string key"); goto bail; } - nbytes += PyString_GET_SIZE(c) + 1; + nbytes += PyBytes_GET_SIZE(c) + 1; } } - packobj = PyString_FromStringAndSize(NULL, nbytes); + packobj = PyBytes_FromStringAndSize(NULL, nbytes); if (packobj == NULL) goto bail; - p = PyString_AS_STRING(packobj); + p = PyBytes_AS_STRING(packobj); pn = PySequence_ITEM(pl, 0); - if (PyString_AsStringAndSize(pn, &s, &l) == -1 || l != 20) { + if (PyBytes_AsStringAndSize(pn, &s, &l) == -1 || l != 20) { PyErr_SetString(PyExc_TypeError, "expected a 20-byte hash"); goto bail; } memcpy(p, s, l); p += 20; pn = PySequence_ITEM(pl, 1); - if (PyString_AsStringAndSize(pn, &s, &l) == -1 || l != 20) { + if (PyBytes_AsStringAndSize(pn, &s, &l) == -1 || l != 20) { PyErr_SetString(PyExc_TypeError, "expected a 20-byte hash"); goto bail; } memcpy(p, s, l); @@ -684,23 +684,23 @@ static PyObject *pack_dirstate(PyObject putbe32((uint32_t)size, p + 4); putbe32((uint32_t)mtime, p + 8); t = p + 12; p += 16; - len = PyString_GET_SIZE(k); - memcpy(p, PyString_AS_STRING(k), len); + len = PyBytes_GET_SIZE(k); + memcpy(p, PyBytes_AS_STRING(k), len); p += len; o = PyDict_GetItem(copymap, k); if (o) { *p++ = '\0'; - l = PyString_GET_SIZE(o); - memcpy(p, PyString_AS_STRING(o), l); + l = PyBytes_GET_SIZE(o); + memcpy(p, PyBytes_AS_STRING(o), l); p += l; len += l + 1; } putbe32((uint32_t)len, t); } - pos = p - PyString_AS_STRING(packobj); + pos = p - PyBytes_AS_STRING(packobj); if (pos != nbytes) { PyErr_Format(PyExc_SystemError, "bad dirstate size: %ld != %ld", (long)pos, (long)nbytes); goto bail; @@ -795,9 +795,9 @@ static const char *index_deref(indexObje } return self->offsets[pos]; } - return PyString_AS_STRING(self->data) + pos * v1_hdrsize; + return PyBytes_AS_STRING(self->data) + pos * v1_hdrsize; } static inline int index_get_parents(indexObject *self, Py_ssize_t rev, int *ps, int maxrev) @@ -925,9 +925,9 @@ static const char *index_node(indexObjec if (pos >= self->length - 1) { PyObject *tuple, *str; tuple = PyList_GET_ITEM(self->added, pos - self->length + 1); str = PyTuple_GetItem(tuple, 7); - return str ? PyString_AS_STRING(str) : NULL; + return str ? PyBytes_AS_STRING(str) : NULL; } data = index_deref(self, pos); return data ? data + 32 : NULL; @@ -936,9 +936,9 @@ static const char *index_node(indexObjec static int nt_insert(indexObject *self, const char *node, int rev); static int node_check(PyObject *obj, char **node, Py_ssize_t *nodelen) { - if (PyString_AsStringAndSize(obj, node, nodelen) == -1) + if (PyBytes_AsStringAndSize(obj, node, nodelen) == -1) return -1; if (*nodelen == 20) return 0; PyErr_SetString(PyExc_ValueError, "20-byte hash required"); @@ -1824,18 +1824,18 @@ static PyObject *index_partialmatch(inde return NULL; case -2: Py_RETURN_NONE; case -1: - return PyString_FromStringAndSize(nullid, 20); + return PyBytes_FromStringAndSize(nullid, 20); } fullnode = index_node(self, rev); if (fullnode == NULL) { PyErr_Format(PyExc_IndexError, "could not access rev %d", rev); return NULL; } - return PyString_FromStringAndSize(fullnode, 20); + return PyBytes_FromStringAndSize(fullnode, 20); } static PyObject *index_m_get(indexObject *self, PyObject *args) { @@ -2246,9 +2246,9 @@ static void nt_invalidate_added(indexObj for (i = start; i < len; i++) { PyObject *tuple = PyList_GET_ITEM(self->added, i); PyObject *node = PyTuple_GET_ITEM(tuple, 7); - nt_insert(self, PyString_AS_STRING(node), -1); + nt_insert(self, PyBytes_AS_STRING(node), -1); } if (start == 0) Py_CLEAR(self->added); @@ -2371,11 +2371,11 @@ static int index_assign_subscript(indexO * the optional "offsets" table with those entries. */ static Py_ssize_t inline_scan(indexObject *self, const char **offsets) { - const char *data = PyString_AS_STRING(self->data); + const char *data = PyBytes_AS_STRING(self->data); Py_ssize_t pos = 0; - Py_ssize_t end = PyString_GET_SIZE(self->data); + Py_ssize_t end = PyBytes_GET_SIZE(self->data); long incr = v1_hdrsize; Py_ssize_t len = 0; while (pos + v1_hdrsize <= end && pos >= 0) { @@ -2415,13 +2415,13 @@ static int index_init(indexObject *self, self->offsets = NULL; if (!PyArg_ParseTuple(args, "OO", &data_obj, &inlined_obj)) return -1; - if (!PyString_Check(data_obj)) { + if (!PyBytes_Check(data_obj)) { PyErr_SetString(PyExc_TypeError, "data is not a string"); return -1; } - size = PyString_GET_SIZE(data_obj); + size = PyBytes_GET_SIZE(data_obj); self->inlined = inlined_obj && PyObject_IsTrue(inlined_obj); self->data = data_obj; @@ -2612,9 +2612,9 @@ static PyObject *readshas( if (list == NULL) { return NULL; } for (i = 0; i < num; i++) { - PyObject *hash = PyString_FromStringAndSize(source, hashwidth); + PyObject *hash = PyBytes_FromStringAndSize(source, hashwidth); if (hash == NULL) { Py_DECREF(list); return NULL; } @@ -2668,9 +2668,9 @@ static PyObject *fm1readmarker(const cha if (data + hashwidth > dataend) { goto overflow; } - prec = PyString_FromStringAndSize(data, hashwidth); + prec = PyBytes_FromStringAndSize(data, hashwidth); data += hashwidth; if (prec == NULL) { goto bail; } @@ -2711,11 +2711,11 @@ static PyObject *fm1readmarker(const cha Py_ssize_t rightsize = (unsigned char)(*data++); if (meta + leftsize + rightsize > dataend) { goto overflow; } - left = PyString_FromStringAndSize(meta, leftsize); + left = PyBytes_FromStringAndSize(meta, leftsize); meta += leftsize; - right = PyString_FromStringAndSize(meta, rightsize); + right = PyBytes_FromStringAndSize(meta, rightsize); meta += rightsize; tmp = PyTuple_New(2); if (!left || !right || !tmp) { Py_XDECREF(left); _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel