gdkclipboard-win32.c: Fix call to gdk_clipboard_claim_remote()
authorChun-wei Fan <fanchunwei@src.gnome.org>
Thu, 31 Mar 2022 02:36:45 +0000 (10:36 +0800)
committerChun-wei Fan <fanchunwei@src.gnome.org>
Thu, 31 Mar 2022 02:55:39 +0000 (10:55 +0800)
The call to gdk_win32_clipboard_request_contentformats() can return NULL even
without an error condition being hit (such as when the system clipboard is
empty), so check whether the returned GdkContentFormat pointer is not NULL
before calling gdk_clipboard_claim_remote(), which expects it to be not NULL,
otherwise we face a warning from that funtion and the subsequent
g_object_unref().

This at least partially fixes issue #4796.

gdk/win32/gdkclipboard-win32.c

index 36d56b8b53e3c69d5ed13c9b512d691145f005ab..ce80019e566d78a4b6236b598bed679ad19c3794 100644 (file)
@@ -142,9 +142,13 @@ gdk_win32_clipboard_claim_remote (GdkWin32Clipboard *cb)
   cb->sequence_number = -1;
 
   formats = gdk_win32_clipboard_request_contentformats (cb);
-  gdk_clipboard_claim_remote (GDK_CLIPBOARD (cb), formats);
-  gdk_content_formats_unref (formats);
-  cb->sequence_number = GetClipboardSequenceNumber ();
+
+  if (formats != NULL)
+    {
+      gdk_clipboard_claim_remote (GDK_CLIPBOARD (cb), formats);
+      gdk_content_formats_unref (formats);
+      cb->sequence_number = GetClipboardSequenceNumber ();
+    }
 }
 
 static void