plugin treeview: fix crash

When the max_project_files is set to a higher value than the allowed
system maximum file descriptors, and opening a project directory that
causes dirmonitor to open a watch on a lot of files or directories, at
least on MacOSX it causes all system.* file functions to return nil
(for too many opened files) which breaks the project files scan.
This commit is contained in:
jgmdev 2022-06-17 15:35:23 -04:00
parent 3c682512e7
commit 173dd3aeb4
1 changed files with 20 additions and 18 deletions

View File

@ -153,6 +153,7 @@ function TreeView:each_item()
count_lines = count_lines + 1 count_lines = count_lines + 1
y = y + h y = y + h
local i = 1 local i = 1
if dir.files then -- if consumed max sys file descriptors this can be nil
while i <= #dir.files and dir_cached.expanded do while i <= #dir.files and dir_cached.expanded do
local item = dir.files[i] local item = dir.files[i]
local cached = self:get_cached(dir, item, dir.name) local cached = self:get_cached(dir, item, dir.name)
@ -175,6 +176,7 @@ function TreeView:each_item()
end end
end end
end -- while files end -- while files
end
end -- for directories end -- for directories
self.count_lines = count_lines self.count_lines = count_lines
end) end)