diff --git a/NvimView/Support/MinimalNvimViewDemo/Document.swift b/NvimView/Support/MinimalNvimViewDemo/Document.swift index 891a2536..dc420f85 100644 --- a/NvimView/Support/MinimalNvimViewDemo/Document.swift +++ b/NvimView/Support/MinimalNvimViewDemo/Document.swift @@ -24,9 +24,9 @@ class Document: NSDocument, NSWindowDelegate { self.nvimView .events .observe(on: MainScheduler.instance) - .subscribe(onNext: { event in + .subscribe(onNext: { [weak self] event in switch event { - case .neoVimStopped: self.close() + case .neoVimStopped: self?.close() default: break } }) diff --git a/VimR/VimR/MainWindow+Delegates.swift b/VimR/VimR/MainWindow+Delegates.swift index 2571bfa2..43de22ab 100644 --- a/VimR/VimR/MainWindow+Delegates.swift +++ b/VimR/VimR/MainWindow+Delegates.swift @@ -70,8 +70,11 @@ extension MainWindow { func bufferListChanged() { self.neoVimView .allBuffers() - .subscribe(onSuccess: { buffers in - self.emit(self.uuidAction(for: .setBufferList(buffers.filter(\.isListed)))) + .subscribe(onSuccess: { [weak self] buffers in + guard let action = self?.uuidAction(for: .setBufferList(buffers.filter(\.isListed))) else { + return + } + self?.emit(action) }) .disposed(by: self.disposeBag) } @@ -87,8 +90,8 @@ extension MainWindow { func tabChanged() { self.neoVimView .currentBuffer() - .subscribe(onSuccess: { - self.newCurrentBuffer($0) + .subscribe(onSuccess: { [weak self] in + self?.newCurrentBuffer($0) }) .disposed(by: self.disposeBag) }