D4018: index: handle index[-1] as nullid more explicitly
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Sat Aug 4 00:06:20 EDT 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rHGf3d394ea17db: index: handle index[-1] as nullid more explicitly (authored by martinvonz, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D4018?vs=9777&id=9881
REVISION DETAIL
https://phab.mercurial-scm.org/D4018
AFFECTED FILES
mercurial/cext/revlog.c
mercurial/pure/parsers.py
CHANGE DETAILS
diff --git a/mercurial/pure/parsers.py b/mercurial/pure/parsers.py
--- a/mercurial/pure/parsers.py
+++ b/mercurial/pure/parsers.py
@@ -55,9 +55,9 @@
return i
def __getitem__(self, i):
+ if i == -1 or i == len(self) - 1:
+ return (0, 0, 0, -1, -1, -1, -1, nullid)
i = self._fix_index(i)
- if i == len(self) - 1:
- return (0, 0, 0, -1, -1, -1, -1, nullid)
if i >= self._lgt:
return self._extra[i - self._lgt]
index = self._calculate_index(i)
diff --git a/mercurial/cext/revlog.c b/mercurial/cext/revlog.c
--- a/mercurial/cext/revlog.c
+++ b/mercurial/cext/revlog.c
@@ -158,19 +158,19 @@
Py_ssize_t length = index_length(self);
PyObject *entry;
+ if (pos == -1 || pos == length - 1) {
+ Py_INCREF(nullentry);
+ return nullentry;
+ }
+
if (pos < 0)
pos += length;
if (pos < 0 || pos >= length) {
PyErr_SetString(PyExc_IndexError, "revlog index out of range");
return NULL;
}
- if (pos == length - 1) {
- Py_INCREF(nullentry);
- return nullentry;
- }
-
if (pos >= self->length - 1) {
PyObject *obj;
obj = PyList_GET_ITEM(self->added, pos - self->length + 1);
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list