diff --git a/mercurial/cext/revlog.c b/mercurial/cext/revlog.c --- a/mercurial/cext/revlog.c +++ b/mercurial/cext/revlog.c @@ -1377,8 +1377,13 @@ char *node; int rev; - if (PyInt_Check(value)) - return index_get(self, PyInt_AS_LONG(value)); + if (PyInt_Check(value)) { + long arg = PyInt_AS_LONG(value); + if (PyErr_Occurred()) { + return NULL; + } + return index_get(self, arg); + } if (node_check(value, &node) == -1) return NULL;