From 16d192450ed639f94cf8b7137fa5fea1a319f8b5 Mon Sep 17 00:00:00 2001 From: keiya sasaki <34934510+keiya01@users.noreply.github.com> Date: Fri, 20 May 2022 06:53:58 +0000 Subject: [PATCH] fix: prevent memory leak on macOS, closes #536 (#587) * fix: prevent memory leak on macOS, closes tauri-apps#536 * Add change file Co-authored-by: Yu-Wei Wu --- .changes/memleak.md | 5 +++++ src/webview/wkwebview/mod.rs | 11 ++--------- 2 files changed, 7 insertions(+), 9 deletions(-) create mode 100644 .changes/memleak.md diff --git a/.changes/memleak.md b/.changes/memleak.md new file mode 100644 index 000000000..feeba2c0a --- /dev/null +++ b/.changes/memleak.md @@ -0,0 +1,5 @@ +--- +"wry": patch +--- + +Prevent memory leak on macOS. diff --git a/src/webview/wkwebview/mod.rs b/src/webview/wkwebview/mod.rs index c1e21ce31..239a27fa4 100644 --- a/src/webview/wkwebview/mod.rs +++ b/src/webview/wkwebview/mod.rs @@ -645,15 +645,8 @@ impl Drop for InnerWebView { } } - // WKWebview has a single WKProcessPool to manage web contents. - // The WKProcessPool is not reset even if WKWebview is deallocated. - // So we need to override the process by navigating to `about:blank`. - self.navigate("about:blank"); - - let _: Id<_> = Id::from_ptr(self.webview); - #[cfg(target_os = "macos")] - let _: Id<_> = Id::from_ptr(self.ns_window); - let _: Id<_> = Id::from_ptr(self.manager); + let _: Id<_> = Id::from_retained_ptr(self.webview); + let _: Id<_> = Id::from_retained_ptr(self.manager); } } }