# HG changeset patch # User Martin von Zweigbergk # Date 1431119592 25200 # Node ID fe3a72a3e7cab21ebb76d28419c38bed9158658c # Parent f41539418b413b5aec512aa3fcf48996a39e81ac 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. diff -r f41539418b41 -r fe3a72a3e7ca mercurial/dirs.c --- 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);