[PATCH 2 of 5] lazymanifest: simplify cleanup at end of iteration
Martin von Zweigbergk
martinvonz at google.com
Wed Mar 11 18:14:24 CDT 2015
# HG changeset patch
# User Martin von Zweigbergk <martinvonz at google.com>
# Date 1426105596 25200
# Wed Mar 11 13:26:36 2015 -0700
# Node ID 7daaf234ddc08ee8dd171a6c2d3347e0caf1632e
# Parent 0709db5b7ee275833b41b89feab59625dca28c7a
lazymanifest: simplify cleanup at end of iteration
When the iterator has been exhausted, there is nothing to clean up, so
return early and simplify the remaining code.
diff -r 0709db5b7ee2 -r 7daaf234ddc0 mercurial/manifest.c
--- a/mercurial/manifest.c Wed Mar 11 08:28:56 2015 -0700
+++ b/mercurial/manifest.c Wed Mar 11 13:26:36 2015 -0700
@@ -227,12 +227,12 @@
size_t pl;
line *l;
Py_ssize_t consumed;
- PyObject *ret = NULL, *path = NULL, *hash = NULL, *flags = NULL;
+ PyObject *path = NULL, *hash = NULL, *flags = NULL;
lmIter *self = (lmIter *)o;
do {
self->pos++;
if (self->pos >= self->m->numlines) {
- goto bail;
+ return NULL;
}
/* skip over deleted manifest entries */
} while (self->m->lines[self->pos].deleted);
@@ -243,15 +243,13 @@
consumed = pl + 41;
flags = PyString_FromStringAndSize(l->start + consumed,
l->len - consumed - 1);
- if (!flags) {
- goto bail;
+ if (flags) {
+ return PyTuple_Pack(3, path, hash, flags);
+ } else {
+ Py_XDECREF(path);
+ Py_XDECREF(hash);
+ return NULL;
}
- ret = PyTuple_Pack(3, path, hash, flags);
- bail:
- Py_XDECREF(path);
- Py_XDECREF(hash);
- Py_XDECREF(flags);
- return ret;
}
static PyTypeObject lazymanifestIterator = {
More information about the Mercurial-devel
mailing list