| Index: runtime/bin/file_system_watcher_win.cc
 | 
| diff --git a/runtime/bin/file_system_watcher_win.cc b/runtime/bin/file_system_watcher_win.cc
 | 
| index 98642ab46a6585923c714ff4e442499feb17865e..a772c6ddb7618f164145301c3535215781d4efcc 100644
 | 
| --- a/runtime/bin/file_system_watcher_win.cc
 | 
| +++ b/runtime/bin/file_system_watcher_win.cc
 | 
| @@ -49,7 +49,6 @@ intptr_t FileSystemWatcher::WatchPath(intptr_t id,
 | 
|                             OPEN_EXISTING,
 | 
|                             FILE_FLAG_BACKUP_SEMANTICS | FILE_FLAG_OVERLAPPED,
 | 
|                             NULL);
 | 
| -  free(const_cast<wchar_t*>(name));
 | 
|  
 | 
|    if (dir == INVALID_HANDLE_VALUE) {
 | 
|      return -1;
 | 
| @@ -93,7 +92,7 @@ Dart_Handle FileSystemWatcher::ReadEvents(intptr_t id, intptr_t path_id) {
 | 
|    intptr_t available = dir->Available();
 | 
|    intptr_t max_count = available / kEventSize + 1;
 | 
|    Dart_Handle events = Dart_NewList(max_count);
 | 
| -  uint8_t* buffer = new uint8_t[available];
 | 
| +  uint8_t* buffer = Dart_ScopeAllocate(available);
 | 
|    intptr_t bytes = dir->Read(buffer, available);
 | 
|    intptr_t offset = 0;
 | 
|    intptr_t i = 0;
 | 
| @@ -120,7 +119,6 @@ Dart_Handle FileSystemWatcher::ReadEvents(intptr_t id, intptr_t path_id) {
 | 
|      if (e->NextEntryOffset == 0) break;
 | 
|      offset += e->NextEntryOffset;
 | 
|    }
 | 
| -  delete[] buffer;
 | 
|    return events;
 | 
|  }
 | 
|  
 | 
| 
 |