# HG changeset patch # User Martin von Zweigbergk # Date 1532154254 25200 # Node ID f9fc59ea3135465afe0491b4b851083dfd1e6539 # Parent 119d14f41cb265ac3c81e292295413a8066ce298 index: create function for deleting node from nodetree A node is marked deleted by nt_insert(self, node, -1), but "-1" could mean so many things (notably nullrev), so let's hide it in a function. The function could possibly also remove nodes from the tree in the future (it currently only marks them deleted). Differential Revision: https://phab.mercurial-scm.org/D4004 diff -r 119d14f41cb2 -r f9fc59ea3135 mercurial/cext/revlog.c --- a/mercurial/cext/revlog.c Fri Jul 20 09:58:09 2018 -0700 +++ b/mercurial/cext/revlog.c Fri Jul 20 23:24:14 2018 -0700 @@ -1093,6 +1093,12 @@ return -1; } +static int nt_delete_node(indexObject *self, const char *node) +{ + /* rev==-1 happens to get encoded as 0, which is interpreted as not set */ + return nt_insert(self, node, -1); +} + static int nt_init(indexObject *self) { if (self->nt == NULL) { @@ -1792,7 +1798,7 @@ PyObject *tuple = PyList_GET_ITEM(self->added, i); PyObject *node = PyTuple_GET_ITEM(tuple, 7); - nt_insert(self, PyBytes_AS_STRING(node), -1); + nt_delete_node(self, PyBytes_AS_STRING(node)); } if (start == 0) @@ -1851,7 +1857,7 @@ if (node == NULL) return -1; - nt_insert(self, node, -1); + nt_delete_node(self, node); } if (self->added) nt_invalidate_added(self, 0); @@ -1903,7 +1909,7 @@ return -1; if (value == NULL) - return self->nt ? nt_insert(self, node, -1) : 0; + return self->nt ? nt_delete_node(self, node) : 0; rev = PyInt_AsLong(value); if (rev > INT_MAX || rev < 0) { if (!PyErr_Occurred())