diff --git a/docs/changes.txt b/docs/changes.txt index 5dd86e51dc..9c5f4a68e8 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -593,6 +593,7 @@ All (GUI): wxGTK: - Fix mouse wheel scrolling in wxListCtrl broken just before 3.0.0. +- Fix memory leak in wxSocket wxMSW: diff --git a/src/gtk/sockgtk.cpp b/src/gtk/sockgtk.cpp index dd786ce35a..85d56c3a71 100644 --- a/src/gtk/sockgtk.cpp +++ b/src/gtk/sockgtk.cpp @@ -46,11 +46,14 @@ class GTKFDIOManager : public wxFDIOManager public: virtual int AddInput(wxFDIOHandler *handler, int fd, Direction d) { - return g_io_add_watch( - g_io_channel_unix_new(fd), + GIOChannel* channel = g_io_channel_unix_new(fd); + unsigned id = g_io_add_watch( + channel, d == OUTPUT ? G_IO_OUT : G_IO_IN, wxSocket_Input, handler); + g_io_channel_unref(channel); + return id; } virtual void