Skip to content

Commit 21014aa

Browse files
committed
implement __sizeof__ for SimpleQueue to account for ring-buffer storage
1 parent 205fd00 commit 21014aa

File tree

1 file changed

+4
-11
lines changed

1 file changed

+4
-11
lines changed

Modules/_queuemodule.c

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -248,19 +248,12 @@ Returns size in memory, in bytes.
248248

249249
static Py_ssize_t
250250
_queue_SimpleQueue___sizeof___impl(simplequeueobject *self)
251+
/*[clinic end generated code: output=58ce4e3bbc078fd4 input=a3a7f05c9616598f]*/
251252
{
252-
Py_ssize_t size = Py_TYPE(self)->tp_basicsize;
253-
PyObject **items = self->buf.items;
254-
Py_ssize_t items_cap = self->buf.items_cap;
255-
256-
if (items != NULL) {
257-
size += items_cap * (Py_ssize_t)sizeof(void *);
258-
}
259-
260-
return size;
253+
Py_ssize_t res = sizeof(simplequeueobject);
254+
res += self->buf.items_cap * sizeof(PyObject *);
255+
return res;
261256
}
262-
/*[clinic end generated code: output=58ce4e3bbc078fd4 input=a3a7f05c9616598f]*/
263-
264257
/*[clinic input]
265258
@classmethod
266259
_queue.SimpleQueue.__new__ as simplequeue_new

0 commit comments

Comments
 (0)