Skip to content

Commit d4a93a2

Browse files
fix: truncate trailing bytes in replacement
fix #212
1 parent 834f117 commit d4a93a2

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

src/extension/preview.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -168,11 +168,13 @@ async function doChange(
168168
const newBytes = new Uint8Array(bytes.byteLength + replaceBytes.byteLength)
169169
newBytes.set(bytes.slice(0, range.byteOffset.start), 0)
170170
newBytes.set(replaceBytes, range.byteOffset.start)
171-
newBytes.set(
172-
bytes.slice(range.byteOffset.end),
173-
range.byteOffset.start + replaceBytes.byteLength,
171+
const slice = bytes.slice(range.byteOffset.end)
172+
newBytes.set(slice, range.byteOffset.start + replaceBytes.byteLength)
173+
const final = newBytes.slice(
174+
0,
175+
range.byteOffset.start + replaceBytes.byteLength + slice.byteLength,
174176
)
175-
await workspace.fs.writeFile(fileUri, newBytes)
177+
await workspace.fs.writeFile(fileUri, final)
176178
}
177179

178180
async function refreshSearchResult(
@@ -226,9 +228,9 @@ function bufferMaker(bytes: Uint8Array) {
226228
let srcOffset = 0
227229
let destOffset = 0
228230
function resizeBuffer() {
229-
const newNewBuffer = new Uint8Array(newBuffer.byteLength * 2)
230-
newNewBuffer.set(newBuffer)
231-
newBuffer = newNewBuffer
231+
const temp = new Uint8Array(newBuffer.byteLength * 2)
232+
temp.set(newBuffer)
233+
newBuffer = temp
232234
}
233235
function receiveResult(r: SgSearch) {
234236
// skip overlapping replacement

0 commit comments

Comments
 (0)