fix: never remove ipc callback & mem never be released (#4274)

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
This commit is contained in:
f91kdash
2022-06-05 21:51:20 +08:00
committed by GitHub
parent 53ae13d99a
commit f72cace368
4 changed files with 11 additions and 5 deletions

View File

@@ -0,0 +1,6 @@
---
"tauri": patch
"api": patch
---
Fixes a memory leak in the command system.

File diff suppressed because one or more lines are too long

View File

@@ -52,11 +52,11 @@
return new Promise(function (resolve, reject) {
var callback = window.__TAURI__.transformCallback(function (r) {
resolve(r)
delete window[error]
delete window[`_${error}`]
}, true)
var error = window.__TAURI__.transformCallback(function (e) {
reject(e)
delete window[callback]
delete window[`_${callback}`]
}, true)
if (typeof cmd === 'string') {

View File

@@ -69,11 +69,11 @@ async function invoke<T>(cmd: string, args: InvokeArgs = {}): Promise<T> {
return new Promise((resolve, reject) => {
const callback = transformCallback((e: T) => {
resolve(e)
Reflect.deleteProperty(window, error)
Reflect.deleteProperty(window, `_${error}`)
}, true)
const error = transformCallback((e) => {
reject(e)
Reflect.deleteProperty(window, callback)
Reflect.deleteProperty(window, `_${callback}`)
}, true)
window.__TAURI_IPC__({