Skip to content

Commit ddccd54

Browse files
authored
gh-111178: Fix function signatures in _threadmodule.c (#124964)
1 parent ac96482 commit ddccd54

File tree

1 file changed

+70
-49
lines changed

1 file changed

+70
-49
lines changed

Modules/_threadmodule.c

+70-49
Original file line numberDiff line numberDiff line change
@@ -599,8 +599,9 @@ PyThreadHandleObject_traverse(PyThreadHandleObject *self, visitproc visit,
599599
}
600600

601601
static void
602-
PyThreadHandleObject_dealloc(PyThreadHandleObject *self)
602+
PyThreadHandleObject_dealloc(PyObject *op)
603603
{
604+
PyThreadHandleObject *self = (PyThreadHandleObject*)op;
604605
PyObject_GC_UnTrack(self);
605606
PyTypeObject *tp = Py_TYPE(self);
606607
ThreadHandle_decref(self->handle);
@@ -609,23 +610,26 @@ PyThreadHandleObject_dealloc(PyThreadHandleObject *self)
609610
}
610611

611612
static PyObject *
612-
PyThreadHandleObject_repr(PyThreadHandleObject *self)
613+
PyThreadHandleObject_repr(PyObject *op)
613614
{
615+
PyThreadHandleObject *self = (PyThreadHandleObject*)op;
614616
PyThread_ident_t ident = ThreadHandle_ident(self->handle);
615617
return PyUnicode_FromFormat("<%s object: ident=%" PY_FORMAT_THREAD_IDENT_T ">",
616618
Py_TYPE(self)->tp_name, ident);
617619
}
618620

619621
static PyObject *
620-
PyThreadHandleObject_get_ident(PyThreadHandleObject *self,
621-
PyObject *Py_UNUSED(ignored))
622+
PyThreadHandleObject_get_ident(PyObject *op, void *Py_UNUSED(ignored))
622623
{
624+
PyThreadHandleObject *self = (PyThreadHandleObject*)op;
623625
return PyLong_FromUnsignedLongLong(ThreadHandle_ident(self->handle));
624626
}
625627

626628
static PyObject *
627-
PyThreadHandleObject_join(PyThreadHandleObject *self, PyObject *args)
629+
PyThreadHandleObject_join(PyObject *op, PyObject *args)
628630
{
631+
PyThreadHandleObject *self = (PyThreadHandleObject*)op;
632+
629633
PyObject *timeout_obj = NULL;
630634
if (!PyArg_ParseTuple(args, "|O:join", &timeout_obj)) {
631635
return NULL;
@@ -646,9 +650,9 @@ PyThreadHandleObject_join(PyThreadHandleObject *self, PyObject *args)
646650
}
647651

648652
static PyObject *
649-
PyThreadHandleObject_is_done(PyThreadHandleObject *self,
650-
PyObject *Py_UNUSED(ignored))
653+
PyThreadHandleObject_is_done(PyObject *op, PyObject *Py_UNUSED(ignored))
651654
{
655+
PyThreadHandleObject *self = (PyThreadHandleObject*)op;
652656
if (_PyEvent_IsSet(&self->handle->thread_is_exiting)) {
653657
Py_RETURN_TRUE;
654658
}
@@ -658,30 +662,30 @@ PyThreadHandleObject_is_done(PyThreadHandleObject *self,
658662
}
659663

660664
static PyObject *
661-
PyThreadHandleObject_set_done(PyThreadHandleObject *self,
662-
PyObject *Py_UNUSED(ignored))
665+
PyThreadHandleObject_set_done(PyObject *op, PyObject *Py_UNUSED(ignored))
663666
{
667+
PyThreadHandleObject *self = (PyThreadHandleObject*)op;
664668
if (ThreadHandle_set_done(self->handle) < 0) {
665669
return NULL;
666670
}
667671
Py_RETURN_NONE;
668672
}
669673

670674
static PyGetSetDef ThreadHandle_getsetlist[] = {
671-
{"ident", (getter)PyThreadHandleObject_get_ident, NULL, NULL},
675+
{"ident", PyThreadHandleObject_get_ident, NULL, NULL},
672676
{0},
673677
};
674678

675679
static PyMethodDef ThreadHandle_methods[] = {
676-
{"join", (PyCFunction)PyThreadHandleObject_join, METH_VARARGS, NULL},
677-
{"_set_done", (PyCFunction)PyThreadHandleObject_set_done, METH_NOARGS, NULL},
678-
{"is_done", (PyCFunction)PyThreadHandleObject_is_done, METH_NOARGS, NULL},
680+
{"join", PyThreadHandleObject_join, METH_VARARGS, NULL},
681+
{"_set_done", PyThreadHandleObject_set_done, METH_NOARGS, NULL},
682+
{"is_done", PyThreadHandleObject_is_done, METH_NOARGS, NULL},
679683
{0, 0}
680684
};
681685

682686
static PyType_Slot ThreadHandle_Type_slots[] = {
683-
{Py_tp_dealloc, (destructor)PyThreadHandleObject_dealloc},
684-
{Py_tp_repr, (reprfunc)PyThreadHandleObject_repr},
687+
{Py_tp_dealloc, PyThreadHandleObject_dealloc},
688+
{Py_tp_repr, PyThreadHandleObject_repr},
685689
{Py_tp_getset, ThreadHandle_getsetlist},
686690
{Py_tp_traverse, PyThreadHandleObject_traverse},
687691
{Py_tp_methods, ThreadHandle_methods},
@@ -707,15 +711,16 @@ typedef struct {
707711
} lockobject;
708712

709713
static int
710-
lock_traverse(lockobject *self, visitproc visit, void *arg)
714+
lock_traverse(PyObject *self, visitproc visit, void *arg)
711715
{
712716
Py_VISIT(Py_TYPE(self));
713717
return 0;
714718
}
715719

716720
static void
717-
lock_dealloc(lockobject *self)
721+
lock_dealloc(PyObject *op)
718722
{
723+
lockobject *self = (lockobject*)op;
719724
PyObject_GC_UnTrack(self);
720725
if (self->in_weakreflist != NULL) {
721726
PyObject_ClearWeakRefs((PyObject *) self);
@@ -784,11 +789,14 @@ lock_acquire_parse_args(PyObject *args, PyObject *kwds,
784789
}
785790

786791
static PyObject *
787-
lock_PyThread_acquire_lock(lockobject *self, PyObject *args, PyObject *kwds)
792+
lock_PyThread_acquire_lock(PyObject *op, PyObject *args, PyObject *kwds)
788793
{
794+
lockobject *self = (lockobject*)op;
795+
789796
PyTime_t timeout;
790-
if (lock_acquire_parse_args(args, kwds, &timeout) < 0)
797+
if (lock_acquire_parse_args(args, kwds, &timeout) < 0) {
791798
return NULL;
799+
}
792800

793801
PyLockStatus r = acquire_timed(self->lock_lock, timeout);
794802
if (r == PY_LOCK_INTR) {
@@ -824,8 +832,9 @@ PyDoc_STRVAR(enter_doc,
824832
Lock the lock.");
825833

826834
static PyObject *
827-
lock_PyThread_release_lock(lockobject *self, PyObject *Py_UNUSED(ignored))
835+
lock_PyThread_release_lock(PyObject *op, PyObject *Py_UNUSED(ignored))
828836
{
837+
lockobject *self = (lockobject*)op;
829838
/* Sanity check: the lock must be locked */
830839
if (!self->locked) {
831840
PyErr_SetString(ThreadError, "release unlocked lock");
@@ -858,8 +867,9 @@ PyDoc_STRVAR(lock_exit_doc,
858867
Release the lock.");
859868

860869
static PyObject *
861-
lock_locked_lock(lockobject *self, PyObject *Py_UNUSED(ignored))
870+
lock_locked_lock(PyObject *op, PyObject *Py_UNUSED(ignored))
862871
{
872+
lockobject *self = (lockobject*)op;
863873
return PyBool_FromLong((long)self->locked);
864874
}
865875

@@ -876,16 +886,18 @@ PyDoc_STRVAR(locked_lock_doc,
876886
An obsolete synonym of locked().");
877887

878888
static PyObject *
879-
lock_repr(lockobject *self)
889+
lock_repr(PyObject *op)
880890
{
891+
lockobject *self = (lockobject*)op;
881892
return PyUnicode_FromFormat("<%s %s object at %p>",
882893
self->locked ? "locked" : "unlocked", Py_TYPE(self)->tp_name, self);
883894
}
884895

885896
#ifdef HAVE_FORK
886897
static PyObject *
887-
lock__at_fork_reinit(lockobject *self, PyObject *Py_UNUSED(args))
898+
lock__at_fork_reinit(PyObject *op, PyObject *Py_UNUSED(args))
888899
{
900+
lockobject *self = (lockobject*)op;
889901
if (_PyThread_at_fork_reinit(&self->lock_lock) < 0) {
890902
PyErr_SetString(ThreadError, "failed to reinitialize lock at fork");
891903
return NULL;
@@ -924,20 +936,20 @@ static PyMethodDef lock_methods[] = {
924936
METH_VARARGS | METH_KEYWORDS, acquire_lock_doc},
925937
{"acquire", _PyCFunction_CAST(lock_PyThread_acquire_lock),
926938
METH_VARARGS | METH_KEYWORDS, acquire_doc},
927-
{"release_lock", (PyCFunction)lock_PyThread_release_lock,
939+
{"release_lock", lock_PyThread_release_lock,
928940
METH_NOARGS, release_lock_doc},
929-
{"release", (PyCFunction)lock_PyThread_release_lock,
941+
{"release", lock_PyThread_release_lock,
930942
METH_NOARGS, release_doc},
931-
{"locked_lock", (PyCFunction)lock_locked_lock,
943+
{"locked_lock", lock_locked_lock,
932944
METH_NOARGS, locked_lock_doc},
933-
{"locked", (PyCFunction)lock_locked_lock,
945+
{"locked", lock_locked_lock,
934946
METH_NOARGS, locked_doc},
935947
{"__enter__", _PyCFunction_CAST(lock_PyThread_acquire_lock),
936948
METH_VARARGS | METH_KEYWORDS, enter_doc},
937-
{"__exit__", (PyCFunction)lock_PyThread_release_lock,
949+
{"__exit__", lock_PyThread_release_lock,
938950
METH_VARARGS, lock_exit_doc},
939951
#ifdef HAVE_FORK
940-
{"_at_fork_reinit", (PyCFunction)lock__at_fork_reinit,
952+
{"_at_fork_reinit", lock__at_fork_reinit,
941953
METH_NOARGS, NULL},
942954
#endif
943955
{NULL, NULL} /* sentinel */
@@ -964,8 +976,8 @@ static PyMemberDef lock_type_members[] = {
964976
};
965977

966978
static PyType_Slot lock_type_slots[] = {
967-
{Py_tp_dealloc, (destructor)lock_dealloc},
968-
{Py_tp_repr, (reprfunc)lock_repr},
979+
{Py_tp_dealloc, lock_dealloc},
980+
{Py_tp_repr, lock_repr},
969981
{Py_tp_doc, (void *)lock_doc},
970982
{Py_tp_methods, lock_methods},
971983
{Py_tp_traverse, lock_traverse},
@@ -1001,8 +1013,9 @@ rlock_traverse(rlockobject *self, visitproc visit, void *arg)
10011013

10021014

10031015
static void
1004-
rlock_dealloc(rlockobject *self)
1016+
rlock_dealloc(PyObject *op)
10051017
{
1018+
rlockobject *self = (rlockobject*)op;
10061019
PyObject_GC_UnTrack(self);
10071020
if (self->in_weakreflist != NULL)
10081021
PyObject_ClearWeakRefs((PyObject *) self);
@@ -1029,8 +1042,9 @@ rlock_is_owned_by(rlockobject *self, PyThread_ident_t tid)
10291042
}
10301043

10311044
static PyObject *
1032-
rlock_acquire(rlockobject *self, PyObject *args, PyObject *kwds)
1045+
rlock_acquire(PyObject *op, PyObject *args, PyObject *kwds)
10331046
{
1047+
rlockobject *self = (rlockobject*)op;
10341048
PyTime_t timeout;
10351049
PyThread_ident_t tid;
10361050
PyLockStatus r = PY_LOCK_ACQUIRED;
@@ -1086,8 +1100,9 @@ PyDoc_STRVAR(rlock_enter_doc,
10861100
Lock the lock.");
10871101

10881102
static PyObject *
1089-
rlock_release(rlockobject *self, PyObject *Py_UNUSED(ignored))
1103+
rlock_release(PyObject *op, PyObject *Py_UNUSED(ignored))
10901104
{
1105+
rlockobject *self = (rlockobject*)op;
10911106
PyThread_ident_t tid = PyThread_get_thread_ident_ex();
10921107

10931108
if (!rlock_is_owned_by(self, tid)) {
@@ -1122,8 +1137,9 @@ PyDoc_STRVAR(rlock_exit_doc,
11221137
Release the lock.");
11231138

11241139
static PyObject *
1125-
rlock_acquire_restore(rlockobject *self, PyObject *args)
1140+
rlock_acquire_restore(PyObject *op, PyObject *args)
11261141
{
1142+
rlockobject *self = (rlockobject*)op;
11271143
PyThread_ident_t owner;
11281144
unsigned long count;
11291145
int r = 1;
@@ -1154,8 +1170,9 @@ PyDoc_STRVAR(rlock_acquire_restore_doc,
11541170
For internal use by `threading.Condition`.");
11551171

11561172
static PyObject *
1157-
rlock_release_save(rlockobject *self, PyObject *Py_UNUSED(ignored))
1173+
rlock_release_save(PyObject *op, PyObject *Py_UNUSED(ignored))
11581174
{
1175+
rlockobject *self = (rlockobject*)op;
11591176
PyThread_ident_t owner;
11601177
unsigned long count;
11611178

@@ -1180,8 +1197,9 @@ PyDoc_STRVAR(rlock_release_save_doc,
11801197
For internal use by `threading.Condition`.");
11811198

11821199
static PyObject *
1183-
rlock_recursion_count(rlockobject *self, PyObject *Py_UNUSED(ignored))
1200+
rlock_recursion_count(PyObject *op, PyObject *Py_UNUSED(ignored))
11841201
{
1202+
rlockobject *self = (rlockobject*)op;
11851203
PyThread_ident_t tid = PyThread_get_thread_ident_ex();
11861204
PyThread_ident_t owner =
11871205
_Py_atomic_load_ullong_relaxed(&self->rlock_owner);
@@ -1195,8 +1213,9 @@ PyDoc_STRVAR(rlock_recursion_count_doc,
11951213
For internal use by reentrancy checks.");
11961214

11971215
static PyObject *
1198-
rlock_is_owned(rlockobject *self, PyObject *Py_UNUSED(ignored))
1216+
rlock_is_owned(PyObject *op, PyObject *Py_UNUSED(ignored))
11991217
{
1218+
rlockobject *self = (rlockobject*)op;
12001219
PyThread_ident_t tid = PyThread_get_thread_ident_ex();
12011220

12021221
if (rlock_is_owned_by(self, tid)) {
@@ -1232,8 +1251,9 @@ rlock_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
12321251
}
12331252

12341253
static PyObject *
1235-
rlock_repr(rlockobject *self)
1254+
rlock_repr(PyObject *op)
12361255
{
1256+
rlockobject *self = (rlockobject*)op;
12371257
PyThread_ident_t owner =
12381258
_Py_atomic_load_ullong_relaxed(&self->rlock_owner);
12391259
return PyUnicode_FromFormat(
@@ -1264,19 +1284,19 @@ rlock__at_fork_reinit(rlockobject *self, PyObject *Py_UNUSED(args))
12641284
static PyMethodDef rlock_methods[] = {
12651285
{"acquire", _PyCFunction_CAST(rlock_acquire),
12661286
METH_VARARGS | METH_KEYWORDS, rlock_acquire_doc},
1267-
{"release", (PyCFunction)rlock_release,
1287+
{"release", rlock_release,
12681288
METH_NOARGS, rlock_release_doc},
1269-
{"_is_owned", (PyCFunction)rlock_is_owned,
1289+
{"_is_owned", rlock_is_owned,
12701290
METH_NOARGS, rlock_is_owned_doc},
1271-
{"_acquire_restore", (PyCFunction)rlock_acquire_restore,
1291+
{"_acquire_restore", rlock_acquire_restore,
12721292
METH_VARARGS, rlock_acquire_restore_doc},
1273-
{"_release_save", (PyCFunction)rlock_release_save,
1293+
{"_release_save", rlock_release_save,
12741294
METH_NOARGS, rlock_release_save_doc},
1275-
{"_recursion_count", (PyCFunction)rlock_recursion_count,
1295+
{"_recursion_count", rlock_recursion_count,
12761296
METH_NOARGS, rlock_recursion_count_doc},
12771297
{"__enter__", _PyCFunction_CAST(rlock_acquire),
12781298
METH_VARARGS | METH_KEYWORDS, rlock_enter_doc},
1279-
{"__exit__", (PyCFunction)rlock_release,
1299+
{"__exit__", rlock_release,
12801300
METH_VARARGS, rlock_exit_doc},
12811301
#ifdef HAVE_FORK
12821302
{"_at_fork_reinit", (PyCFunction)rlock__at_fork_reinit,
@@ -1292,8 +1312,8 @@ static PyMemberDef rlock_type_members[] = {
12921312
};
12931313

12941314
static PyType_Slot rlock_type_slots[] = {
1295-
{Py_tp_dealloc, (destructor)rlock_dealloc},
1296-
{Py_tp_repr, (reprfunc)rlock_repr},
1315+
{Py_tp_dealloc, rlock_dealloc},
1316+
{Py_tp_repr, rlock_repr},
12971317
{Py_tp_methods, rlock_methods},
12981318
{Py_tp_alloc, PyType_GenericAlloc},
12991319
{Py_tp_new, rlock_new},
@@ -1392,8 +1412,9 @@ typedef struct {
13921412
} localdummyobject;
13931413

13941414
static void
1395-
localdummy_dealloc(localdummyobject *self)
1415+
localdummy_dealloc(PyObject *op)
13961416
{
1417+
localdummyobject *self = (localdummyobject*)op;
13971418
if (self->weakreflist != NULL)
13981419
PyObject_ClearWeakRefs((PyObject *) self);
13991420
PyTypeObject *tp = Py_TYPE(self);
@@ -1407,7 +1428,7 @@ static PyMemberDef local_dummy_type_members[] = {
14071428
};
14081429

14091430
static PyType_Slot local_dummy_type_slots[] = {
1410-
{Py_tp_dealloc, (destructor)localdummy_dealloc},
1431+
{Py_tp_dealloc, localdummy_dealloc},
14111432
{Py_tp_doc, "Thread-local dummy"},
14121433
{Py_tp_members, local_dummy_type_members},
14131434
{0, 0}

0 commit comments

Comments
 (0)