From d242589bde8345a28657442468b4d661657502bd Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Tue, 17 May 2016 15:14:18 -0500 Subject: [PATCH] Fixes bug where temporary save states weren't always deleted --- .../SaveStatesViewController.swift | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/Delta/Pause Menu/Save States/SaveStatesViewController.swift b/Delta/Pause Menu/Save States/SaveStatesViewController.swift index a81af61..9f048e4 100644 --- a/Delta/Pause Menu/Save States/SaveStatesViewController.swift +++ b/Delta/Pause Menu/Save States/SaveStatesViewController.swift @@ -387,9 +387,24 @@ private extension SaveStatesViewController func resetEmulatorCoreIfNeeded() { + guard let saveState = self.currentGameState else { return } + + defer + { + // Remove temporary save state file + do + { + try NSFileManager.defaultManager().removeItemAtURL(saveState.fileURL) + } + catch let error as NSError + { + print(error) + } + } + // Kinda hacky, but isMovingFromParentViewController only returns yes when popping off navigation controller, and not being dismissed modally // Because of this, this is only run when the user returns to PauseMenuViewController, and not when they choose a save state to load - guard let saveState = self.currentGameState where self.isMovingFromParentViewController() else { return } + guard self.isMovingFromParentViewController() else { return } // We stopped emulation for 3D Touch, so now we must resume emulation and load the save state we made to make it seem like it was never stopped let emulatorCore = self.delegate.saveStatesViewControllerActiveEmulatorCore(self) @@ -404,16 +419,6 @@ private extension SaveStatesViewController // Re-enable video rendering emulatorCore.videoManager.enabled = true - - // Remove temporary save state file - do - { - try NSFileManager.defaultManager().removeItemAtURL(saveState.fileURL) - } - catch let error as NSError - { - print(error) - } } //MARK: - Convenience Methods -