[PATCH 10 of 11] parsers: use Python memory allocator in find_gca_candidates()

Gregory Szorc gregory.szorc at gmail.com
Thu Mar 9 16:59:18 EST 2017


# HG changeset patch
# User Gregory Szorc <gregory.szorc at gmail.com>
# Date 1489090492 28800
#      Thu Mar 09 12:14:52 2017 -0800
# Node ID db8f2c5eb2010a972f6e4fd9082ce1740b60b880
# Parent  ed3df3cb9be2aaa06fdb5998508ef1e838778017
parsers: use Python memory allocator in find_gca_candidates()

diff --git a/mercurial/parsers.c b/mercurial/parsers.c
--- a/mercurial/parsers.c
+++ b/mercurial/parsers.c
@@ -1929,12 +1929,14 @@ static PyObject *find_gca_candidates(ind
 			maxrev = revs[i];
 	}
 
-	seen = calloc(sizeof(*seen), maxrev + 1);
+	seen = PyMem_Malloc(sizeof(*seen) * (maxrev + 1));
 	if (seen == NULL) {
 		Py_DECREF(gca);
 		return PyErr_NoMemory();
 	}
 
+	memset(seen, 0, sizeof(*seen) * (maxrev + 1));
+
 	for (i = 0; i < revcount; i++)
 		seen[revs[i]] = 1ull << i;
 
@@ -1988,10 +1990,10 @@ static PyObject *find_gca_candidates(ind
 	}
 
 done:
-	free(seen);
+	PyMem_Free(seen);
 	return gca;
 bail:
-	free(seen);
+	PyMem_Free(seen);
 	Py_XDECREF(gca);
 	return NULL;
 }


More information about the Mercurial-devel mailing list