Mercurial > hg
changeset 25093:fe3a72a3e7ca
dirs.c: pass C string, not Python string, to _finddir()
The callers already have the C string, and although the
PyString_AS_STRING() macro is probably free, this simplifies the code.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Fri, 08 May 2015 14:13:12 -0700 |
parents | f41539418b41 |
children | 3182965b3971 |
files | mercurial/dirs.c |
diffstat | 1 files changed, 4 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/dirs.c Fri May 08 14:11:00 2015 -0700 +++ b/mercurial/dirs.c Fri May 08 14:13:12 2015 -0700 @@ -28,12 +28,10 @@ PyObject *dict; } dirsObject; -static inline Py_ssize_t _finddir(PyObject *path, Py_ssize_t pos) +static inline Py_ssize_t _finddir(const char *path, Py_ssize_t pos) { - const char *s = PyString_AS_STRING(path); - while (pos != -1) { - if (s[pos] == '/') + if (path[pos] == '/') break; pos -= 1; } @@ -48,7 +46,7 @@ PyObject *key = NULL; int ret = -1; - while ((pos = _finddir(path, pos - 1)) != -1) { + while ((pos = _finddir(cpath, pos - 1)) != -1) { PyObject *val; /* It's likely that every prefix already has an entry @@ -100,7 +98,7 @@ PyObject *key = NULL; int ret = -1; - while ((pos = _finddir(path, pos - 1)) != -1) { + while ((pos = _finddir(cpath, pos - 1)) != -1) { PyObject *val; key = PyString_FromStringAndSize(cpath, pos);