From c437f3c5b0da0a9cc6a222d87212cce11b80ba75 Mon Sep 17 00:00:00 2001 From: Steven Arcangeli Date: Tue, 27 Feb 2024 07:55:21 -0800 Subject: [PATCH] fix: potential leak in experimental file watcher --- lua/oil/view.lua | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lua/oil/view.lua b/lua/oil/view.lua index 52df36b..8352d70 100644 --- a/lua/oil/view.lua +++ b/lua/oil/view.lua @@ -324,7 +324,7 @@ M.initialize = function(bufnr) vim.bo[bufnr].syntax = "oil" vim.bo[bufnr].filetype = "oil" vim.b[bufnr].EditorConfig_disable = 1 - session[bufnr] = {} + session[bufnr] = session[bufnr] or {} for k, v in pairs(config.buf_options) do vim.api.nvim_buf_set_option(bufnr, k, v) end @@ -437,7 +437,12 @@ M.initialize = function(bufnr) local adapter = util.get_adapter(bufnr) -- Set up a watcher that will refresh the directory - if adapter and adapter.name == "files" and config.experimental_watch_for_changes then + if + adapter + and adapter.name == "files" + and config.experimental_watch_for_changes + and not session[bufnr].fs_event + then local fs_event = assert(uv.new_fs_event()) local bufname = vim.api.nvim_buf_get_name(bufnr) local _, dir = util.parse_url(bufname)