From fcecc8c6c4b16a8dbb1b02e97be1f8d2f7d60965 Mon Sep 17 00:00:00 2001 From: Andrew Murray <3112309+radarhere@users.noreply.github.com> Date: Fri, 27 Mar 2026 08:45:40 +1100 Subject: [PATCH] Fixed AVIF and WEBP dealloc (#9501) --- src/_avif.c | 8 ++++---- src/_webp.c | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/_avif.c b/src/_avif.c index 5e8b9fe8e..a9ae89f23 100644 --- a/src/_avif.c +++ b/src/_avif.c @@ -425,7 +425,7 @@ end: return (PyObject *)self; } -PyObject * +void _encoder_dealloc(AvifEncoderObject *self) { if (self->encoder) { avifEncoderDestroy(self->encoder); @@ -433,7 +433,7 @@ _encoder_dealloc(AvifEncoderObject *self) { if (self->image) { avifImageDestroy(self->image); } - Py_RETURN_NONE; + Py_TYPE(self)->tp_free(self); } PyObject * @@ -687,13 +687,13 @@ AvifDecoderNew(PyObject *self_, PyObject *args) { return (PyObject *)self; } -PyObject * +void _decoder_dealloc(AvifDecoderObject *self) { if (self->decoder) { avifDecoderDestroy(self->decoder); } PyBuffer_Release(&self->buffer); - Py_RETURN_NONE; + Py_TYPE(self)->tp_free(self); } PyObject * diff --git a/src/_webp.c b/src/_webp.c index d065e329c..ea7e77133 100644 --- a/src/_webp.c +++ b/src/_webp.c @@ -219,6 +219,7 @@ _anim_encoder_dealloc(PyObject *self) { WebPAnimEncoderObject *encp = (WebPAnimEncoderObject *)self; WebPPictureFree(&(encp->frame)); WebPAnimEncoderDelete(encp->enc); + Py_TYPE(self)->tp_free(self); } PyObject * @@ -441,6 +442,7 @@ _anim_decoder_dealloc(PyObject *self) { WebPAnimDecoderObject *decp = (WebPAnimDecoderObject *)self; WebPDataClear(&(decp->data)); WebPAnimDecoderDelete(decp->dec); + Py_TYPE(self)->tp_free(self); } PyObject *