From 072c6f3aebbe6eb78d197c90fd0d2989d4fea3e7 Mon Sep 17 00:00:00 2001 From: nitoyon Date: Sun, 24 Aug 2014 00:13:40 +0900 Subject: [PATCH] windows: ensure fs_event always provides filename `uv_fs_event` didn't provide filename argument on Windows when a file is deleted or renamed, although it does on Linux. Fix this by ensuring that fs_event always provides filename argument on Windows. --- src/win/fs-event.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/win/fs-event.c b/src/win/fs-event.c index 7ad99a88b1..05a9c12fa1 100644 --- a/src/win/fs-event.c +++ b/src/win/fs-event.c @@ -369,7 +369,8 @@ void uv_process_fs_event_req(uv_loop_t* loop, uv_req_t* req, /* * We attempt to convert the file name to its long form for * events that still point to valid files on disk. - * For removed and renamed events, we do not provide the file name. + * For removed and renamed from events, we do not provide the + * long file name. */ if (file_info->Action != FILE_ACTION_REMOVED && file_info->Action != FILE_ACTION_RENAMED_OLD_NAME) { @@ -420,18 +421,15 @@ void uv_process_fs_event_req(uv_loop_t* loop, uv_req_t* req, long_filenamew = NULL; } } + } - /* - * If we couldn't get the long name - just use the name - * provided by ReadDirectoryChangesW. - */ - if (!long_filenamew) { - filenamew = file_info->FileName; - sizew = file_info->FileNameLength / sizeof(WCHAR); - } - } else { - /* Removed or renamed callbacks don't provide filename. */ - filenamew = NULL; + /* + * If we couldn't get the long name - just use the name + * provided by ReadDirectoryChangesW. + */ + if (!long_filenamew) { + filenamew = file_info->FileName; + sizew = file_info->FileNameLength / sizeof(WCHAR); } } else { /* We already have the long name of the file, so just use it. */