parsers: ensure that nullid is always present in the radix tree
authorBryan O'Sullivan <bryano@fb.com>
Sat, 12 May 2012 10:55:08 +0200
changeset 16664 5bc6edf71b39
parent 16663 a955e05dd7a0
child 16665 e410be860393
parsers: ensure that nullid is always present in the radix tree
mercurial/parsers.c
--- a/mercurial/parsers.c	Sat May 12 10:55:07 2012 +0200
+++ b/mercurial/parsers.c	Sat May 12 10:55:08 2012 +0200
@@ -387,7 +387,7 @@
 	Py_ssize_t length = index_length(self);
 	const char *data;
 
-	if (pos == length - 1)
+	if (pos == length - 1 || pos == INT_MAX)
 		return nullid;
 
 	if (pos >= length)
@@ -671,6 +671,8 @@
 		self->ntrev = (int)index_length(self) - 1;
 		self->ntlookups = 1;
 		self->ntmisses = 0;
+		if (nt_insert(self, nullid, INT_MAX) == -1)
+			return -1;
 	}
 	return 0;
 }