Fix use of dangling reference in wxFileSystemWatcher Unix code

Don't reference the "watch" object after possibly destroying it when handling
IN_DELETE_SELF inotify notification.

Closes #17122.

(cherry picked from commit 34d39c9dfb)
This commit is contained in:
David Hart
2016-08-19 23:19:14 +02:00
committed by Vadim Zeitlin
parent 07168e3d2a
commit e1a4b7d5aa
2 changed files with 3 additions and 1 deletions

View File

@@ -626,6 +626,7 @@ wxGTK:
- Fix GTK+ warnings when refreshing wxListCtrl items (Scott Talbert).
- Fix using wxHTTP and wxFTP from worker thread.
- Make items selected from keyboard visible in wxListCtrl (Jonathan Dagresta).
- Fix crashes in wxFileSystemWatcher implementation (David Hart).
wxMSW:

View File

@@ -385,6 +385,7 @@ protected:
// if the wd isn't found: repeated IN_DELETE_SELFs can occur
wxFileName fn = GetEventPath(watch, inevt);
wxString path(fn.GetPathWithSep());
const wxString filespec(watch.GetFilespec());
if (m_watchMap.erase(inevt.wd) == 1)
{
@@ -406,7 +407,7 @@ protected:
// Tell the owner, in case it's interested
// If there's a filespec, assume he's not
if (watch.GetFilespec().empty())
if (filespec.empty())
{
wxFileSystemWatcherEvent event(flags, fn, fn);
SendEvent(event);