Преглед на файлове

filesystem: Move dir retrieval after path checking in DeleteFile()

We don't need to do the lookup if the path is considered empty
currently.
Lioncash преди 8 години
родител
ревизия
fda8f1da20
променени са 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;
 }
 }