}
static Py_hash_t
-dec_hash(PyDecObject *self)
+dec_hash(PyObject *op)
{
+ PyDecObject *self = _PyDecObject_CAST(op);
if (self->hash == -1) {
self->hash = _dec_hash(self);
}
"SSL/TLS connection terminated abruptly.");
static PyObject *
-SSLError_str(PyOSErrorObject *self)
+SSLError_str(PyObject *op)
{
+ PyOSErrorObject *self = (PyOSErrorObject*)op;
if (self->strerror != NULL && PyUnicode_Check(self->strerror)) {
return Py_NewRef(self->strerror);
}
}
static PyObject *
-ndarray_subscript(NDArrayObject *self, PyObject *key)
+ndarray_subscript(PyObject *op, PyObject *key)
{
+ NDArrayObject *self = (NDArrayObject*)op;
NDArrayObject *nd;
ndbuf_t *ndbuf;
Py_buffer *base = &self->head->base;
static int
-ndarray_ass_subscript(NDArrayObject *self, PyObject *key, PyObject *value)
+ndarray_ass_subscript(PyObject *op, PyObject *key, PyObject *value)
{
+ NDArrayObject *self = (NDArrayObject*)op;
NDArrayObject *nd;
Py_buffer *dest = &self->head->base;
Py_buffer src;
if (PyObject_GetBuffer(value, &src, PyBUF_FULL_RO) == -1)
return -1;
- nd = (NDArrayObject *)ndarray_subscript(self, key);
+ nd = (NDArrayObject *)ndarray_subscript((PyObject*)self, key);
if (nd != NULL) {
dest = &nd->head->base;
ret = copy_buffer(dest, &src);
static PyMappingMethods ndarray_as_mapping = {
NULL, /* mp_length */
- (binaryfunc)ndarray_subscript, /* mp_subscript */
- (objobjargproc)ndarray_ass_subscript /* mp_ass_subscript */
+ ndarray_subscript, /* mp_subscript */
+ ndarray_ass_subscript /* mp_ass_subscript */
};
static PySequenceMethods ndarray_as_sequence = {
} PyGenericAliasObject;
static void
-generic_alias_dealloc(PyGenericAliasObject *self)
+generic_alias_dealloc(PyObject *op)
{
+ PyGenericAliasObject *self = (PyGenericAliasObject*)op;
Py_CLEAR(self->item);
Py_TYPE(self)->tp_free((PyObject *)self);
}
static PyObject *
-generic_alias_mro_entries(PyGenericAliasObject *self, PyObject *bases)
+generic_alias_mro_entries(PyObject *op, PyObject *bases)
{
+ PyGenericAliasObject *self = (PyGenericAliasObject*)op;
return PyTuple_Pack(1, self->item);
}
static PyMethodDef generic_alias_methods[] = {
- {"__mro_entries__", _PyCFunction_CAST(generic_alias_mro_entries), METH_O, NULL},
+ {"__mro_entries__", generic_alias_mro_entries, METH_O, NULL},
{NULL} /* sentinel */
};
"GenericAlias",
sizeof(PyGenericAliasObject),
0,
- .tp_dealloc = (destructor)generic_alias_dealloc,
+ .tp_dealloc = generic_alias_dealloc,
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
.tp_methods = generic_alias_methods,
};
}
static void
-ContainerNoGC_dealloc(ContainerNoGCobject *self)
+ContainerNoGC_dealloc(PyObject *op)
{
+ ContainerNoGCobject *self = (ContainerNoGCobject*)op;
Py_DECREF(self->value);
Py_TYPE(self)->tp_free((PyObject *)self);
}
PyVarObject_HEAD_INIT(NULL, 0)
"_testcapi.ContainerNoGC",
sizeof(ContainerNoGCobject),
- .tp_dealloc = (destructor)ContainerNoGC_dealloc,
+ .tp_dealloc = ContainerNoGC_dealloc,
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
.tp_members = ContainerNoGC_members,
.tp_new = ContainerNoGC_new,
}
static PyObject *
-LimitedVectorCallClass_new(PyTypeObject *tp, PyTypeObject *a, PyTypeObject *kw)
+LimitedVectorCallClass_new(PyTypeObject *tp, PyObject *a, PyObject *kw)
{
PyObject *self = ((allocfunc)PyType_GetSlot(tp, Py_tp_alloc))(tp, 0);
if (!self) {
} LimitedRelativeVectorCallStruct;
static PyObject *
-LimitedRelativeVectorCallClass_new(PyTypeObject *tp, PyTypeObject *a, PyTypeObject *kw)
+LimitedRelativeVectorCallClass_new(PyTypeObject *tp, PyObject *a, PyObject *kw)
{
PyObject *self = ((allocfunc)PyType_GetSlot(tp, Py_tp_alloc))(tp, 0);
if (!self) {
}
static int
-Xxo_setattr(PyObject *op, const char *name, PyObject *v)
+Xxo_setattr(PyObject *op, char *name, PyObject *v)
{
XxoObject *self = XxoObject_CAST(op);
if (self->x_attr == NULL) {
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=0658178ab94645df]*/
static void
-ZlibDecompressor_dealloc(ZlibDecompressor *self)
+ZlibDecompressor_dealloc(PyObject *op)
{
+ ZlibDecompressor *self = (ZlibDecompressor*)op;
PyObject *type = (PyObject *)Py_TYPE(self);
PyThread_free_lock(self->lock);
if (self->is_initialised) {
static PyObject *
-async_gen_asend(PyAsyncGenObject *o, PyObject *arg)
+async_gen_asend(PyObject *op, PyObject *arg)
{
+ PyAsyncGenObject *o = (PyAsyncGenObject*)op;
if (async_gen_init_hooks(o)) {
return NULL;
}
static PyObject *
-async_gen_aclose(PyAsyncGenObject *o, PyObject *arg)
+async_gen_aclose(PyObject *op, PyObject *arg)
{
+ PyAsyncGenObject *o = (PyAsyncGenObject*)op;
if (async_gen_init_hooks(o)) {
return NULL;
}
}
static PyObject *
-async_gen_athrow(PyAsyncGenObject *o, PyObject *args)
+async_gen_athrow(PyObject *op, PyObject *args)
{
+ PyAsyncGenObject *o = (PyAsyncGenObject*)op;
if (PyTuple_GET_SIZE(args) > 1) {
if (PyErr_WarnEx(PyExc_DeprecationWarning,
"the (type, exc, tb) signature of athrow() is deprecated, "
and may be removed in a future version of Python.");
static PyMethodDef async_gen_methods[] = {
- {"asend", (PyCFunction)async_gen_asend, METH_O, async_asend_doc},
- {"athrow",(PyCFunction)async_gen_athrow, METH_VARARGS, async_athrow_doc},
- {"aclose", (PyCFunction)async_gen_aclose, METH_NOARGS, async_aclose_doc},
+ {"asend", async_gen_asend, METH_O, async_asend_doc},
+ {"athrow", async_gen_athrow, METH_VARARGS, async_athrow_doc},
+ {"aclose", async_gen_aclose, METH_NOARGS, async_aclose_doc},
{"__sizeof__", gen_sizeof, METH_NOARGS, sizeof__doc__},
{"__class_getitem__", Py_GenericAlias,
METH_O|METH_CLASS, PyDoc_STR("See PEP 585")},
static void
-async_gen_athrow_finalize(PyAsyncGenAThrow *o)
+async_gen_athrow_finalize(PyObject *op)
{
+ PyAsyncGenAThrow *o = (PyAsyncGenAThrow*)op;
if (o->agt_state == AWAITABLE_STATE_INIT) {
PyObject *method = o->agt_args ? &_Py_ID(athrow) : &_Py_ID(aclose);
_PyErr_WarnUnawaitedAgenMethod(o->agt_gen, method);
0, /* tp_init */
0, /* tp_alloc */
0, /* tp_new */
- .tp_finalize = (destructor)async_gen_athrow_finalize,
+ .tp_finalize = async_gen_athrow_finalize,
};
return long_long(self);
}
+static PyObject *
+long_long_getter(PyObject *self, void *Py_UNUSED(ignored))
+{
+ return long_long(self);
+}
+
/*[clinic input]
int.is_integer
static PyGetSetDef long_getset[] = {
{"real",
- (getter)long_long_meth, (setter)NULL,
+ long_long_getter, (setter)NULL,
"the real part of a complex number",
NULL},
{"imag",
"the imaginary part of a complex number",
NULL},
{"numerator",
- (getter)long_long_meth, (setter)NULL,
+ long_long_getter, (setter)NULL,
"the numerator of a rational number in lowest terms",
NULL},
{"denominator",
}
static int
-picklebuf_traverse(PyPickleBufferObject *self, visitproc visit, void *arg)
+picklebuf_traverse(PyObject *op, visitproc visit, void *arg)
{
+ PyPickleBufferObject *self = (PyPickleBufferObject*)op;
Py_VISIT(self->view.obj);
return 0;
}
static int
-picklebuf_clear(PyPickleBufferObject *self)
+picklebuf_clear(PyObject *op)
{
+ PyPickleBufferObject *self = (PyPickleBufferObject*)op;
PyBuffer_Release(&self->view);
return 0;
}
static void
-picklebuf_dealloc(PyPickleBufferObject *self)
+picklebuf_dealloc(PyObject *op)
{
+ PyPickleBufferObject *self = (PyPickleBufferObject*)op;
PyObject_GC_UnTrack(self);
if (self->weakreflist != NULL)
PyObject_ClearWeakRefs((PyObject *) self);
/* Buffer API */
static int
-picklebuf_getbuf(PyPickleBufferObject *self, Py_buffer *view, int flags)
+picklebuf_getbuf(PyObject *op, Py_buffer *view, int flags)
{
+ PyPickleBufferObject *self = (PyPickleBufferObject*)op;
if (self->view.obj == NULL) {
PyErr_SetString(PyExc_ValueError,
"operation forbidden on released PickleBuffer object");
}
static void
-picklebuf_releasebuf(PyPickleBufferObject *self, Py_buffer *view)
+picklebuf_releasebuf(PyObject *self, Py_buffer *view)
{
/* Since our bf_getbuffer redirects to the original object, this
* implementation is never called. It only exists to signal that
}
static PyBufferProcs picklebuf_as_buffer = {
- .bf_getbuffer = (getbufferproc) picklebuf_getbuf,
- .bf_releasebuffer = (releasebufferproc) picklebuf_releasebuf,
+ .bf_getbuffer = picklebuf_getbuf,
+ .bf_releasebuffer = picklebuf_releasebuf,
};
/* Methods */
static PyObject *
-picklebuf_raw(PyPickleBufferObject *self, PyObject *Py_UNUSED(ignored))
+picklebuf_raw(PyObject *op, PyObject *Py_UNUSED(ignored))
{
+ PyPickleBufferObject *self = (PyPickleBufferObject*)op;
if (self->view.obj == NULL) {
PyErr_SetString(PyExc_ValueError,
"operation forbidden on released PickleBuffer object");
Will raise BufferError is the buffer isn't contiguous.");
static PyObject *
-picklebuf_release(PyPickleBufferObject *self, PyObject *Py_UNUSED(ignored))
+picklebuf_release(PyObject *op, PyObject *Py_UNUSED(ignored))
{
+ PyPickleBufferObject *self = (PyPickleBufferObject*)op;
PyBuffer_Release(&self->view);
Py_RETURN_NONE;
}
Release the underlying buffer exposed by the PickleBuffer object.");
static PyMethodDef picklebuf_methods[] = {
- {"raw", (PyCFunction) picklebuf_raw, METH_NOARGS, picklebuf_raw_doc},
- {"release", (PyCFunction) picklebuf_release, METH_NOARGS, picklebuf_release_doc},
+ {"raw", picklebuf_raw, METH_NOARGS, picklebuf_raw_doc},
+ {"release", picklebuf_release, METH_NOARGS, picklebuf_release_doc},
{NULL, NULL}
};
.tp_basicsize = sizeof(PyPickleBufferObject),
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC,
.tp_new = picklebuf_new,
- .tp_dealloc = (destructor) picklebuf_dealloc,
- .tp_traverse = (traverseproc) picklebuf_traverse,
- .tp_clear = (inquiry) picklebuf_clear,
+ .tp_dealloc = picklebuf_dealloc,
+ .tp_traverse = picklebuf_traverse,
+ .tp_clear = picklebuf_clear,
.tp_weaklistoffset = offsetof(PyPickleBufferObject, weakreflist),
.tp_as_buffer = &picklebuf_as_buffer,
.tp_methods = picklebuf_methods,
}
static PyObject *
-setiter_len(setiterobject *si, PyObject *Py_UNUSED(ignored))
+setiter_len(PyObject *op, PyObject *Py_UNUSED(ignored))
{
+ setiterobject *si = (setiterobject*)op;
Py_ssize_t len = 0;
if (si->si_set != NULL && si->si_used == si->si_set->used)
len = si->len;
PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it)).");
static PyObject *
-setiter_reduce(setiterobject *si, PyObject *Py_UNUSED(ignored))
+setiter_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))
{
+ setiterobject *si = (setiterobject*)op;
+
/* copy the iterator state */
setiterobject tmp = *si;
Py_XINCREF(tmp.si_set);
PyDoc_STRVAR(reduce_doc, "Return state information for pickling.");
static PyMethodDef setiter_methods[] = {
- {"__length_hint__", (PyCFunction)setiter_len, METH_NOARGS, length_hint_doc},
- {"__reduce__", (PyCFunction)setiter_reduce, METH_NOARGS, reduce_doc},
+ {"__length_hint__", setiter_len, METH_NOARGS, length_hint_doc},
+ {"__reduce__", setiter_reduce, METH_NOARGS, reduce_doc},
{NULL, NULL} /* sentinel */
};
/* Implementation of slice.indices. */
static PyObject*
-slice_indices(PySliceObject* self, PyObject* len)
+slice_indices(PyObject *op, PyObject* len)
{
+ PySliceObject *self = _PySlice_CAST(op);
PyObject *start, *stop, *step;
PyObject *length;
int error;
handling of normal slices.");
static PyObject *
-slice_reduce(PySliceObject* self, PyObject *Py_UNUSED(ignored))
+slice_reduce(PyObject *op, PyObject *Py_UNUSED(ignored))
{
+ PySliceObject *self = _PySlice_CAST(op);
return Py_BuildValue("O(OOO)", Py_TYPE(self), self->start, self->stop, self->step);
}
PyDoc_STRVAR(reduce_doc, "Return state information for pickling.");
static PyMethodDef slice_methods[] = {
- {"indices", (PyCFunction)slice_indices,
- METH_O, slice_indices_doc},
- {"__reduce__", (PyCFunction)slice_reduce,
- METH_NOARGS, reduce_doc},
+ {"indices", slice_indices, METH_O, slice_indices_doc},
+ {"__reduce__", slice_reduce, METH_NOARGS, reduce_doc},
{NULL, NULL}
};
} formatteriterobject;
static void
-formatteriter_dealloc(formatteriterobject *it)
+formatteriter_dealloc(PyObject *op)
{
+ formatteriterobject *it = (formatteriterobject*)op;
Py_XDECREF(it->str);
PyObject_Free(it);
}
conversion is either None, or the string after the '!'
*/
static PyObject *
-formatteriter_next(formatteriterobject *it)
+formatteriter_next(PyObject *op)
{
+ formatteriterobject *it = (formatteriterobject*)op;
SubString literal;
SubString field_name;
SubString format_spec;
sizeof(formatteriterobject), /* tp_basicsize */
0, /* tp_itemsize */
/* methods */
- (destructor)formatteriter_dealloc, /* tp_dealloc */
+ formatteriter_dealloc, /* tp_dealloc */
0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
PyObject_SelfIter, /* tp_iter */
- (iternextfunc)formatteriter_next, /* tp_iternext */
+ formatteriter_next, /* tp_iternext */
formatteriter_methods, /* tp_methods */
0,
};
} fieldnameiterobject;
static void
-fieldnameiter_dealloc(fieldnameiterobject *it)
+fieldnameiter_dealloc(PyObject *op)
{
+ fieldnameiterobject *it = (fieldnameiterobject*)op;
Py_XDECREF(it->str);
PyObject_Free(it);
}
value is an integer or string
*/
static PyObject *
-fieldnameiter_next(fieldnameiterobject *it)
+fieldnameiter_next(PyObject *op)
{
+ fieldnameiterobject *it = (fieldnameiterobject*)op;
int result;
int is_attr;
Py_ssize_t idx;
sizeof(fieldnameiterobject), /* tp_basicsize */
0, /* tp_itemsize */
/* methods */
- (destructor)fieldnameiter_dealloc, /* tp_dealloc */
+ fieldnameiter_dealloc, /* tp_dealloc */
0, /* tp_vectorcall_offset */
0, /* tp_getattr */
0, /* tp_setattr */
0, /* tp_richcompare */
0, /* tp_weaklistoffset */
PyObject_SelfIter, /* tp_iter */
- (iternextfunc)fieldnameiter_next, /* tp_iternext */
+ fieldnameiter_next, /* tp_iternext */
fieldnameiter_methods, /* tp_methods */
0};
static int
-hamt_baseiter_tp_clear(PyHamtIterator *it)
+hamt_baseiter_tp_clear(PyObject *op)
{
+ PyHamtIterator *it = (PyHamtIterator*)op;
Py_CLEAR(it->hi_obj);
return 0;
}
static void
-hamt_baseiter_tp_dealloc(PyHamtIterator *it)
+hamt_baseiter_tp_dealloc(PyObject *it)
{
PyObject_GC_UnTrack(it);
(void)hamt_baseiter_tp_clear(it);
}
static int
-hamt_baseiter_tp_traverse(PyHamtIterator *it, visitproc visit, void *arg)
+hamt_baseiter_tp_traverse(PyObject *op, visitproc visit, void *arg)
{
+ PyHamtIterator *it = (PyHamtIterator*)op;
Py_VISIT(it->hi_obj);
return 0;
}
static PyObject *
-hamt_baseiter_tp_iternext(PyHamtIterator *it)
+hamt_baseiter_tp_iternext(PyObject *op)
{
+ PyHamtIterator *it = (PyHamtIterator*)op;
PyObject *key;
PyObject *val;
hamt_iter_t res = hamt_iterator_next(&it->hi_iter, &key, &val);
}
static Py_ssize_t
-hamt_baseiter_tp_len(PyHamtIterator *it)
+hamt_baseiter_tp_len(PyObject *op)
{
+ PyHamtIterator *it = (PyHamtIterator*)op;
return it->hi_obj->h_count;
}
static PyMappingMethods PyHamtIterator_as_mapping = {
- (lenfunc)hamt_baseiter_tp_len,
+ hamt_baseiter_tp_len,
};
static PyObject *
.tp_basicsize = sizeof(PyHamtIterator), \
.tp_itemsize = 0, \
.tp_as_mapping = &PyHamtIterator_as_mapping, \
- .tp_dealloc = (destructor)hamt_baseiter_tp_dealloc, \
+ .tp_dealloc = hamt_baseiter_tp_dealloc, \
.tp_getattro = PyObject_GenericGetAttr, \
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, \
- .tp_traverse = (traverseproc)hamt_baseiter_tp_traverse, \
- .tp_clear = (inquiry)hamt_baseiter_tp_clear, \
+ .tp_traverse = hamt_baseiter_tp_traverse, \
+ .tp_clear = hamt_baseiter_tp_clear, \
.tp_iter = PyObject_SelfIter, \
.tp_iternext = (iternextfunc)hamt_baseiter_tp_iternext,
}
+static void
+tracemalloc_destroy_domain(void *value)
+{
+ _Py_hashtable_t *ht = (_Py_hashtable_t*)value;
+ _Py_hashtable_destroy(ht);
+}
+
+
static _Py_hashtable_t*
tracemalloc_create_domains_table(void)
{
return hashtable_new(hashtable_hash_uint,
_Py_hashtable_compare_direct,
NULL,
- (_Py_hashtable_destroy_func)_Py_hashtable_destroy);
+ tracemalloc_destroy_domain);
}