diff -r a85c4ed1132f -r 64cd23a1bc13 mercurial/manifest.c --- a/mercurial/manifest.c Sat Apr 11 12:26:54 2015 -0400 +++ b/mercurial/manifest.c Sun Apr 12 06:51:13 2015 -0700 @@ -232,7 +232,7 @@ size_t pl; line *l; Py_ssize_t consumed; - PyObject *path = NULL, *hash = NULL, *flags = NULL; + PyObject *ret = NULL, *path = NULL, *hash = NULL, *flags = NULL; l = lmiter_nextline((lmIter *)o); if (!l) { goto bail; @@ -246,12 +246,12 @@ if (!path || !hash || !flags) { goto bail; } - return PyTuple_Pack(3, path, hash, flags); + ret = PyTuple_Pack(3, path, hash, flags); bail: Py_XDECREF(path); Py_XDECREF(hash); Py_XDECREF(flags); - return NULL; + return ret; } static PyTypeObject lazymanifestEntriesIterator = {