Bläddra i källkod

fix: memory leak - scene.destroy() and window.launchQueue (#8198)

zsviczian 1 år sedan
förälder
incheckning
2e1f08c796
1 ändrade filer med 2 tillägg och 1 borttagningar
  1. 2 1
      packages/excalidraw/components/App.tsx

+ 2 - 1
packages/excalidraw/components/App.tsx

@@ -2490,7 +2490,9 @@ class App extends React.Component<AppProps, AppState> {
   }
   }
 
 
   public componentWillUnmount() {
   public componentWillUnmount() {
+    (window as any).launchQueue?.setConsumer(() => {});
     this.renderer.destroy();
     this.renderer.destroy();
+    this.scene.destroy();
     this.scene = new Scene();
     this.scene = new Scene();
     this.fonts = new Fonts({ scene: this.scene });
     this.fonts = new Fonts({ scene: this.scene });
     this.renderer = new Renderer(this.scene);
     this.renderer = new Renderer(this.scene);
@@ -2499,7 +2501,6 @@ class App extends React.Component<AppProps, AppState> {
     this.resizeObserver?.disconnect();
     this.resizeObserver?.disconnect();
     this.unmounted = true;
     this.unmounted = true;
     this.removeEventListeners();
     this.removeEventListeners();
-    this.scene.destroy();
     this.library.destroy();
     this.library.destroy();
     this.laserTrails.stop();
     this.laserTrails.stop();
     this.eraserTrail.stop();
     this.eraserTrail.stop();