gtk2: fix resource leak (gtk_clipboard_wait_for_contents). Issue #40499

This commit is contained in:
wsherman 2023-09-09 16:31:12 -07:00 committed by Maxim Ganetsky
parent fde9868fda
commit 275ce9fdd8

View File

@ -7600,6 +7600,7 @@ var
TimeID: cardinal; TimeID: cardinal;
EventData: PClipboardEventData; EventData: PClipboardEventData;
TypeAtom: TGdkAtom; TypeAtom: TGdkAtom;
GtkSelectionDataPtr: PGtkSelectionData;
begin begin
{$IFDEF DEBUG_CLIPBOARD} {$IFDEF DEBUG_CLIPBOARD}
DebugLn('[RequestSelectionData] FormatID=',dbgs(FormatID)); DebugLn('[RequestSelectionData] FormatID=',dbgs(FormatID));
@ -7634,8 +7635,10 @@ begin
// WaitForClipboardAnswer provides a timeout as in some cases // WaitForClipboardAnswer provides a timeout as in some cases
// gtk_clipboard_wait_for_contents can wait forever // gtk_clipboard_wait_for_contents can wait forever
if WaitForClipboardAnswer(EventData) then begin if WaitForClipboardAnswer(EventData) then begin
gtk_clipboard_wait_for_contents(gtk_clipboard_get(TypeAtom), FormatID); GtkSelectionDataPtr := gtk_clipboard_wait_for_contents(gtk_clipboard_get(TypeAtom), FormatID);
Result:=EventData^.Data; if GtkSelectionDataPtr <> nil then
gtk_selection_data_free(GtkSelectionDataPtr);
Result:=EventData^.Data; //why aren't we using the returned object from gtk_clipboard_wait_for_contents directly?
end; end;
end; end;
finally finally