patch 9.2.0816: GTK4: Memory leak in gui_gtk_set_dnd_targets()
Commit:
https://github.com/vim/vim/commit/dd326ec1e8c8a7f734be79abed973871a298697b
Author: Foxe Chen <
chen...@gmail.com>
Date: Mon Jul 20 17:00:22 2026 +0000
patch 9.2.0816: GTK4: Memory leak in gui_gtk_set_dnd_targets()
Problem: GTK4: Memory leak in gui_gtk_set_dnd_targets()
Solution: Unref formats (Foxe Chen)
closes: #20729
Signed-off-by: Foxe Chen <
chen...@gmail.com>
Signed-off-by: Christian Brabandt <
c...@256bit.org>
diff --git a/src/gui_gtk4.c b/src/gui_gtk4.c
index 2bcb31ce9..fbe4ec553 100644
--- a/src/gui_gtk4.c
+++ b/src/gui_gtk4.c
@@ -2582,15 +2582,17 @@ read_data_input_cb(
void
gui_gtk_set_dnd_targets(void)
{
- GdkContentFormatsBuilder *builder = gdk_content_formats_builder_new();
+ GdkContentFormatsBuilder *builder = gdk_content_formats_builder_new();
+ GdkContentFormats *formats;
gdk_content_formats_builder_add_gtype(builder, GDK_TYPE_FILE_LIST);
gdk_content_formats_builder_add_gtype(builder, G_TYPE_STRING);
if (clip_html)
gdk_content_formats_builder_add_mime_type(builder, "text/html");
- gtk_drop_target_async_set_formats(gui.drop_target,
- gdk_content_formats_builder_free_to_formats(builder));
+ formats = gdk_content_formats_builder_free_to_formats(builder);
+ gtk_drop_target_async_set_formats(gui.drop_target, formats);
+ gdk_content_formats_unref(formats);
}
/*
diff --git a/src/version.c b/src/version.c
index 28726e373..bb8df567b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -759,6 +759,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 816,
/**/
815,
/**/