瀏覽代碼

Merge pull request #1228 from lioncash/construct

filesystem: Move dir retrieval after path checking in DeleteFile()
bunnei 8 年之前
父節點
當前提交
7a439630bb
共有 1 個文件被更改,包括 5 次插入2 次删除
  1. 5 2
      src/core/hle/service/filesystem/filesystem.cpp

+ 5 - 2
src/core/hle/service/filesystem/filesystem.cpp

@@ -60,17 +60,20 @@ ResultCode VfsDirectoryServiceWrapper::CreateFile(const std::string& path_, u64
 
 
 ResultCode VfsDirectoryServiceWrapper::DeleteFile(const std::string& path_) const {
 ResultCode VfsDirectoryServiceWrapper::DeleteFile(const std::string& path_) const {
     std::string path(FileUtil::SanitizePath(path_));
     std::string path(FileUtil::SanitizePath(path_));
-    auto dir = GetDirectoryRelativeWrapped(backing, FileUtil::GetParentPath(path));
     if (path.empty()) {
     if (path.empty()) {
         // TODO(DarkLordZach): Why do games call this and what should it do? Works as is but...
         // TODO(DarkLordZach): Why do games call this and what should it do? Works as is but...
         return RESULT_SUCCESS;
         return RESULT_SUCCESS;
     }
     }
-    if (dir->GetFile(FileUtil::GetFilename(path)) == nullptr)
+
+    auto dir = GetDirectoryRelativeWrapped(backing, FileUtil::GetParentPath(path));
+    if (dir->GetFile(FileUtil::GetFilename(path)) == nullptr) {
         return FileSys::ERROR_PATH_NOT_FOUND;
         return FileSys::ERROR_PATH_NOT_FOUND;
+    }
     if (!dir->DeleteFile(FileUtil::GetFilename(path))) {
     if (!dir->DeleteFile(FileUtil::GetFilename(path))) {
         // TODO(DarkLordZach): Find a better error code for this
         // TODO(DarkLordZach): Find a better error code for this
         return ResultCode(-1);
         return ResultCode(-1);
     }
     }
+
     return RESULT_SUCCESS;
     return RESULT_SUCCESS;
 }
 }