Просмотр исходного кода

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

Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
f91kdash 3 лет назад
Родитель
Сommit
f72cace368

+ 6 - 0
.changes/fix-memory-leak-command.md

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

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
core/tauri/scripts/bundle.js


+ 2 - 2
core/tauri/scripts/core.js

@@ -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') {

+ 2 - 2
tooling/api/src/tauri.ts

@@ -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__({

Некоторые файлы не были показаны из-за большого количества измененных файлов