@@ -197,35 +197,41 @@ typedef struct {
197
197
PyObject * weakreflist ;
198
198
} simplequeueobject ;
199
199
200
+ #define simplequeueobject_CAST (op ) ((simplequeueobject *)(op))
201
+
200
202
/*[clinic input]
201
203
module _queue
202
204
class _queue.SimpleQueue "simplequeueobject *" "simplequeue_get_state_by_type(type)->SimpleQueueType"
203
205
[clinic start generated code]*/
204
206
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=0a4023fe4d198c8d]*/
205
207
206
208
static int
207
- simplequeue_clear (simplequeueobject * self )
209
+ simplequeue_clear (PyObject * op )
208
210
{
211
+ simplequeueobject * self = simplequeueobject_CAST (op );
209
212
RingBuf_Fini (& self -> buf );
210
213
return 0 ;
211
214
}
212
215
213
216
static void
214
- simplequeue_dealloc (simplequeueobject * self )
217
+ simplequeue_dealloc (PyObject * op )
215
218
{
219
+ simplequeueobject * self = simplequeueobject_CAST (op );
216
220
PyTypeObject * tp = Py_TYPE (self );
217
221
218
222
PyObject_GC_UnTrack (self );
219
- (void )simplequeue_clear (self );
220
- if (self -> weakreflist != NULL )
221
- PyObject_ClearWeakRefs ((PyObject * ) self );
222
- Py_TYPE (self )-> tp_free (self );
223
+ (void )simplequeue_clear (op );
224
+ if (self -> weakreflist != NULL ) {
225
+ PyObject_ClearWeakRefs (op );
226
+ }
227
+ tp -> tp_free (self );
223
228
Py_DECREF (tp );
224
229
}
225
230
226
231
static int
227
- simplequeue_traverse (simplequeueobject * self , visitproc visit , void * arg )
232
+ simplequeue_traverse (PyObject * op , visitproc visit , void * arg )
228
233
{
234
+ simplequeueobject * self = simplequeueobject_CAST (op );
229
235
RingBuf * buf = & self -> buf ;
230
236
for (Py_ssize_t i = 0 , num_items = buf -> num_items ; i < num_items ; i ++ ) {
231
237
Py_VISIT (RingBuf_At (buf , i ));
@@ -514,7 +520,7 @@ queue_clear(PyObject *m)
514
520
static void
515
521
queue_free (void * m )
516
522
{
517
- queue_clear ((PyObject * )m );
523
+ ( void ) queue_clear ((PyObject * )m );
518
524
}
519
525
520
526
#include "clinic/_queuemodule.c.h"
0 commit comments