Skip to content

Commit

Permalink
Merge pull request #7246 from radarhere/deallocate
Browse files Browse the repository at this point in the history
Fixed deallocating mask images
  • Loading branch information
radarhere committed Jul 1, 2023
2 parents 8c1dc81 + 39a3b1d commit c827f3b
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 5 deletions.
12 changes: 10 additions & 2 deletions src/PIL/ImageFont.py
Expand Up @@ -562,9 +562,17 @@ def getmask2(
_string_length_check(text)
if start is None:
start = (0, 0)
im, size, offset = self.font.render(
im = None

def fill(mode, size):
nonlocal im

im = Image.core.fill(mode, size)
return im

size, offset = self.font.render(
text,
Image.core.fill,
fill,
mode,
direction,
features,
Expand Down
7 changes: 4 additions & 3 deletions src/_imagingft.c
Expand Up @@ -882,7 +882,7 @@ font_render(FontObject *self, PyObject *args) {
if (max_image_pixels != Py_None) {
if ((long long)(width > 1 ? width : 1) * (height > 1 ? height : 1) > PyLong_AsLongLong(max_image_pixels) * 2) {
PyMem_Del(glyph_info);
return Py_BuildValue("O(ii)(ii)", Py_None, width, height, 0, 0);
return Py_BuildValue("(ii)(ii)", width, height, 0, 0);
}
}

Expand All @@ -898,7 +898,7 @@ font_render(FontObject *self, PyObject *args) {
y_offset -= stroke_width;
if (count == 0 || width == 0 || height == 0) {
PyMem_Del(glyph_info);
return Py_BuildValue("O(ii)(ii)", image, width, height, x_offset, y_offset);
return Py_BuildValue("(ii)(ii)", width, height, x_offset, y_offset);
}

if (stroke_width) {
Expand Down Expand Up @@ -1113,9 +1113,10 @@ font_render(FontObject *self, PyObject *args) {
if (bitmap_converted_ready) {
FT_Bitmap_Done(library, &bitmap_converted);
}
Py_DECREF(image);
FT_Stroker_Done(stroker);
PyMem_Del(glyph_info);
return Py_BuildValue("O(ii)(ii)", image, width, height, x_offset, y_offset);
return Py_BuildValue("(ii)(ii)", width, height, x_offset, y_offset);

glyph_error:
if (im->destroy) {
Expand Down

0 comments on commit c827f3b

Please sign in to comment.