diff --git a/gio/glocalfilemonitor.c b/gio/glocalfilemonitor.c index 62d269c79..cb13bbf96 100644 --- a/gio/glocalfilemonitor.c +++ b/gio/glocalfilemonitor.c @@ -748,6 +748,9 @@ g_local_file_monitor_start (GLocalFileMonitor *local_monitor, g_assert (!local_monitor->source); + source = g_file_monitor_source_new (local_monitor, filename, is_directory, flags); + local_monitor->source = source; /* owns the ref */ + if (is_directory && !class->mount_notify && (flags & G_FILE_MONITOR_WATCH_MOUNTS)) { #ifdef G_OS_WIN32 @@ -771,9 +774,6 @@ g_local_file_monitor_start (GLocalFileMonitor *local_monitor, #endif } - source = g_file_monitor_source_new (local_monitor, filename, is_directory, flags); - local_monitor->source = source; /* owns the ref */ - G_LOCAL_FILE_MONITOR_GET_CLASS (local_monitor)->start (local_monitor, source->dirname, source->basename, source->filename, source);