]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.2.0816: GTK4: Memory leak in gui_gtk_set_dnd_targets() v9.2.0816
authorFoxe Chen <chen.foxe@gmail.com>
Mon, 20 Jul 2026 17:00:22 +0000 (17:00 +0000)
committerChristian Brabandt <cb@256bit.org>
Mon, 20 Jul 2026 17:00:22 +0000 (17:00 +0000)
Problem:  GTK4: Memory leak in gui_gtk_set_dnd_targets()
Solution: Unref formats (Foxe Chen)

closes: #20729

Signed-off-by: Foxe Chen <chen.foxe@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
src/gui_gtk4.c
src/version.c

index 2bcb31ce9ec8bd55e0671f8dffe4386e3080347a..fbe4ec55356f129a0acb19426767439778e2c790 100644 (file)
@@ -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);
 }
 
 /*
index 28726e3739f2189b5c3c6d6cf8e2d4da383b6689..bb8df567b779ea09bc6697b790b2aa7e6739abd4 100644 (file)
@@ -759,6 +759,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    816,
 /**/
     815,
 /**/