[PATCH 11 of 11] parsers: use Python memory allocator in find_deepest()
Gregory Szorc
gregory.szorc at gmail.com
Thu Mar 9 16:59:19 EST 2017
# HG changeset patch
# User Gregory Szorc <gregory.szorc at gmail.com>
# Date 1489090625 28800
# Thu Mar 09 12:17:05 2017 -0800
# Node ID 95d7483a749d6cdf59001af63b0c9445117d352a
# Parent db8f2c5eb2010a972f6e4fd9082ce1740b60b880
parsers: use Python memory allocator in find_deepest()
diff --git a/mercurial/parsers.c b/mercurial/parsers.c
--- a/mercurial/parsers.c
+++ b/mercurial/parsers.c
@@ -2026,22 +2026,28 @@ static PyObject *find_deepest(indexObjec
maxrev = n;
}
- depth = calloc(sizeof(*depth), maxrev + 1);
+ depth = PyMem_Malloc(sizeof(*depth) * (maxrev + 1));
if (depth == NULL)
return PyErr_NoMemory();
- seen = calloc(sizeof(*seen), maxrev + 1);
+ memset(depth, 0, sizeof(*depth) * (maxrev + 1));
+
+ seen = PyMem_Malloc(sizeof(*seen) * (maxrev + 1));
if (seen == NULL) {
PyErr_NoMemory();
goto bail;
}
- interesting = calloc(sizeof(*interesting), 2 << revcount);
+ memset(seen, 0, sizeof(*seen) * (maxrev + 1));
+
+ interesting = PyMem_Malloc(sizeof(*interesting) * (2 << revcount));
if (interesting == NULL) {
PyErr_NoMemory();
goto bail;
}
+ memset(interesting, 0, sizeof(*interesting) * (2 << revcount));
+
if (PyList_Sort(revs) == -1)
goto bail;
@@ -2141,9 +2147,9 @@ static PyObject *find_deepest(indexObjec
keys = PyDict_Keys(dict);
bail:
- free(depth);
- free(seen);
- free(interesting);
+ PyMem_Free(depth);
+ PyMem_Free(seen);
+ PyMem_Free(interesting);
Py_XDECREF(dict);
return keys;
More information about the Mercurial-devel
mailing list