PyObject *weakreflist;
} simplequeueobject;
+#define simplequeueobject_CAST(op) ((simplequeueobject *)(op))
+
/*[clinic input]
module _queue
class _queue.SimpleQueue "simplequeueobject *" "simplequeue_get_state_by_type(type)->SimpleQueueType"
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=0a4023fe4d198c8d]*/
static int
-simplequeue_clear(simplequeueobject *self)
+simplequeue_clear(PyObject *op)
{
+ simplequeueobject *self = simplequeueobject_CAST(op);
RingBuf_Fini(&self->buf);
return 0;
}
static void
-simplequeue_dealloc(simplequeueobject *self)
+simplequeue_dealloc(PyObject *op)
{
+ simplequeueobject *self = simplequeueobject_CAST(op);
PyTypeObject *tp = Py_TYPE(self);
PyObject_GC_UnTrack(self);
- (void)simplequeue_clear(self);
- if (self->weakreflist != NULL)
- PyObject_ClearWeakRefs((PyObject *) self);
- Py_TYPE(self)->tp_free(self);
+ (void)simplequeue_clear(op);
+ if (self->weakreflist != NULL) {
+ PyObject_ClearWeakRefs(op);
+ }
+ tp->tp_free(self);
Py_DECREF(tp);
}
static int
-simplequeue_traverse(simplequeueobject *self, visitproc visit, void *arg)
+simplequeue_traverse(PyObject *op, visitproc visit, void *arg)
{
+ simplequeueobject *self = simplequeueobject_CAST(op);
RingBuf *buf = &self->buf;
for (Py_ssize_t i = 0, num_items = buf->num_items; i < num_items; i++) {
Py_VISIT(RingBuf_At(buf, i));
static void
queue_free(void *m)
{
- queue_clear((PyObject *)m);
+ (void)queue_clear((PyObject *)m);
}
#include "clinic/_queuemodule.c.h"