Skip to content

Commit e9c319a

Browse files
committed
fix ref
1 parent 7b19ab0 commit e9c319a

File tree

3 files changed

+17
-10
lines changed

3 files changed

+17
-10
lines changed

changelog.md

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# changelog
22

33
## 2.6.3
4+
`2022-1-25`
45
* `FIX` new files are not loaded correctly
56
* `FIX` [#923](https://github.com/sumneko/lua-language-server/issues/923)
67
* `FIX` [#926](https://github.com/sumneko/lua-language-server/issues/926)

script/files.lua

+2
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,7 @@ function m.addRef(uri)
367367
return nil
368368
end
369369
file._ref = (file._ref or 0) + 1
370+
log.debug('add ref', uri)
370371
return function ()
371372
m.delRef(uri)
372373
end
@@ -378,6 +379,7 @@ function m.delRef(uri)
378379
return
379380
end
380381
file._ref = (file._ref or 0) - 1
382+
log.debug('del ref', uri)
381383
if file._ref <= 0 then
382384
m.remove(uri)
383385
end

script/workspace/loading.lua

+14-10
Original file line numberDiff line numberDiff line change
@@ -81,22 +81,24 @@ function mt:loadFile(uri, libraryUri)
8181
if files.getFile(uri) then
8282
self.read = self.read + 1
8383
self:update()
84-
files.addRef(uri)
84+
if not self._cache[uri] then
85+
files.addRef(uri)
86+
end
8587
self._cache[uri] = true
8688
log.info(('Skip loaded file: %s'):format(uri))
8789
else
8890
local content = pub.awaitTask('loadFile', furi.decode(uri))
8991
self.read = self.read + 1
9092
self:update()
91-
if not self._cache[uri] then
92-
files.addRef(uri)
93-
end
94-
self._cache[uri] = true
9593
if not content then
9694
return
9795
end
9896
log.info(('Preload file at: %s , size = %.3f KB'):format(uri, #content / 1024.0))
9997
files.setText(uri, content, false)
98+
if not self._cache[uri] then
99+
files.addRef(uri)
100+
end
101+
self._cache[uri] = true
100102
end
101103
if libraryUri then
102104
log.info('++++As library of:', libraryUri)
@@ -110,22 +112,24 @@ function mt:loadFile(uri, libraryUri)
110112
if files.getFile(uri) then
111113
self.read = self.read + 1
112114
self:update()
113-
files.addRef(uri)
115+
if not self._cache[uri] then
116+
files.addRef(uri)
117+
end
114118
self._cache[uri] = true
115119
log.info(('Skip loaded file: %s'):format(uri))
116120
else
117121
local content = pub.awaitTask('loadFile', furi.decode(uri))
118122
self.read = self.read + 1
119123
self:update()
120-
if not self._cache[uri] then
121-
files.addRef(uri)
122-
end
123-
self._cache[uri] = true
124124
if not content then
125125
return
126126
end
127127
log.info(('Preload dll at: %s , size = %.3f KB'):format(uri, #content / 1024.0))
128128
files.saveDll(uri, content)
129+
if not self._cache[uri] then
130+
files.addRef(uri)
131+
end
132+
self._cache[uri] = true
129133
end
130134
if libraryUri then
131135
log.info('++++As library of:', libraryUri)

0 commit comments

Comments
 (0)