mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Make PyGC_Collect() use Py_ssize_t.
This commit is contained in:
parent
84632ee319
commit
7b216c52e4
2 changed files with 12 additions and 12 deletions
|
@ -229,7 +229,7 @@ PyAPI_FUNC(PyVarObject *) _PyObject_NewVar(PyTypeObject *, Py_ssize_t);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* C equivalent of gc.collect(). */
|
/* C equivalent of gc.collect(). */
|
||||||
PyAPI_FUNC(long) PyGC_Collect(void);
|
PyAPI_FUNC(Py_ssize_t) PyGC_Collect(void);
|
||||||
|
|
||||||
/* Test if a type has a GC head */
|
/* Test if a type has a GC head */
|
||||||
#define PyType_IS_GC(t) PyType_HasFeature((t), Py_TPFLAGS_HAVE_GC)
|
#define PyType_IS_GC(t) PyType_HasFeature((t), Py_TPFLAGS_HAVE_GC)
|
||||||
|
|
|
@ -196,11 +196,11 @@ gc_list_merge(PyGC_Head *from, PyGC_Head *to)
|
||||||
gc_list_init(from);
|
gc_list_init(from);
|
||||||
}
|
}
|
||||||
|
|
||||||
static long
|
static Py_ssize_t
|
||||||
gc_list_size(PyGC_Head *list)
|
gc_list_size(PyGC_Head *list)
|
||||||
{
|
{
|
||||||
PyGC_Head *gc;
|
PyGC_Head *gc;
|
||||||
long n = 0;
|
Py_ssize_t n = 0;
|
||||||
for (gc = list->gc.gc_next; gc != list; gc = gc->gc.gc_next) {
|
for (gc = list->gc.gc_next; gc != list; gc = gc->gc.gc_next) {
|
||||||
n++;
|
n++;
|
||||||
}
|
}
|
||||||
|
@ -719,12 +719,12 @@ delete_garbage(PyGC_Head *collectable, PyGC_Head *old)
|
||||||
|
|
||||||
/* This is the main function. Read this to understand how the
|
/* This is the main function. Read this to understand how the
|
||||||
* collection process works. */
|
* collection process works. */
|
||||||
static long
|
static Py_ssize_t
|
||||||
collect(int generation)
|
collect(int generation)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
long m = 0; /* # objects collected */
|
Py_ssize_t m = 0; /* # objects collected */
|
||||||
long n = 0; /* # unreachable objects that couldn't be collected */
|
Py_ssize_t n = 0; /* # unreachable objects that couldn't be collected */
|
||||||
PyGC_Head *young; /* the generation we are examining */
|
PyGC_Head *young; /* the generation we are examining */
|
||||||
PyGC_Head *old; /* next older generation */
|
PyGC_Head *old; /* next older generation */
|
||||||
PyGC_Head unreachable; /* non-problematic unreachable trash */
|
PyGC_Head unreachable; /* non-problematic unreachable trash */
|
||||||
|
@ -856,11 +856,11 @@ collect(int generation)
|
||||||
return n+m;
|
return n+m;
|
||||||
}
|
}
|
||||||
|
|
||||||
static long
|
static Py_ssize_t
|
||||||
collect_generations(void)
|
collect_generations(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
long n = 0;
|
Py_ssize_t n = 0;
|
||||||
|
|
||||||
/* Find the oldest generation (higest numbered) where the count
|
/* Find the oldest generation (higest numbered) where the count
|
||||||
* exceeds the threshold. Objects in the that generation and
|
* exceeds the threshold. Objects in the that generation and
|
||||||
|
@ -919,7 +919,7 @@ PyDoc_STRVAR(gc_collect__doc__,
|
||||||
static PyObject *
|
static PyObject *
|
||||||
gc_collect(PyObject *self, PyObject *noargs)
|
gc_collect(PyObject *self, PyObject *noargs)
|
||||||
{
|
{
|
||||||
long n;
|
Py_ssize_t n;
|
||||||
|
|
||||||
if (collecting)
|
if (collecting)
|
||||||
n = 0; /* already collecting, don't do anything */
|
n = 0; /* already collecting, don't do anything */
|
||||||
|
@ -929,7 +929,7 @@ gc_collect(PyObject *self, PyObject *noargs)
|
||||||
collecting = 0;
|
collecting = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Py_BuildValue("l", n);
|
return PyInt_FromSsize_t(n);
|
||||||
}
|
}
|
||||||
|
|
||||||
PyDoc_STRVAR(gc_set_debug__doc__,
|
PyDoc_STRVAR(gc_set_debug__doc__,
|
||||||
|
@ -1181,10 +1181,10 @@ initgc(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* API to invoke gc.collect() from C */
|
/* API to invoke gc.collect() from C */
|
||||||
long
|
Py_ssize_t
|
||||||
PyGC_Collect(void)
|
PyGC_Collect(void)
|
||||||
{
|
{
|
||||||
long n;
|
Py_ssize_t n;
|
||||||
|
|
||||||
if (collecting)
|
if (collecting)
|
||||||
n = 0; /* already collecting, don't do anything */
|
n = 0; /* already collecting, don't do anything */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue