summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2015-12-28 15:55:38 +0100
committerSubv <subv2112@gmail.com>2016-03-20 20:28:10 +0100
commitb350f192bbfe61a212e00ea70d4dcd7d3e90b60a (patch)
treee49a83653a6d8aa4fe8e8818393d86ecf3e525d9 /src/core
parentHLE/FS: FS::CreateFile takes an u64 for the file size. (diff)
downloadyuzu-b350f192bbfe61a212e00ea70d4dcd7d3e90b60a.tar
yuzu-b350f192bbfe61a212e00ea70d4dcd7d3e90b60a.tar.gz
yuzu-b350f192bbfe61a212e00ea70d4dcd7d3e90b60a.tar.bz2
yuzu-b350f192bbfe61a212e00ea70d4dcd7d3e90b60a.tar.lz
yuzu-b350f192bbfe61a212e00ea70d4dcd7d3e90b60a.tar.xz
yuzu-b350f192bbfe61a212e00ea70d4dcd7d3e90b60a.tar.zst
yuzu-b350f192bbfe61a212e00ea70d4dcd7d3e90b60a.zip
Diffstat (limited to 'src/core')
-rw-r--r--src/core/file_sys/disk_archive.cpp5
-rw-r--r--src/core/hle/result.h4
2 files changed, 7 insertions, 2 deletions
diff --git a/src/core/file_sys/disk_archive.cpp b/src/core/file_sys/disk_archive.cpp
index 614c2e2a0..5c68e944f 100644
--- a/src/core/file_sys/disk_archive.cpp
+++ b/src/core/file_sys/disk_archive.cpp
@@ -40,8 +40,11 @@ bool DiskArchive::DeleteDirectory(const Path& path) const {
ResultCode DiskArchive::CreateFile(const FileSys::Path& path, u64 size) const {
std::string full_path = mount_point + path.AsString();
+ if (FileUtil::IsDirectory(full_path))
+ return ResultCode(ErrorDescription::FS_NotAFile, ErrorModule::FS, ErrorSummary::Canceled, ErrorLevel::Status);
+
if (FileUtil::Exists(full_path))
- return ResultCode(ErrorDescription::AlreadyExists, ErrorModule::FS, ErrorSummary::NothingHappened, ErrorLevel::Info);
+ return ResultCode(ErrorDescription::FS_AlreadyExists, ErrorModule::FS, ErrorSummary::NothingHappened, ErrorLevel::Status);
if (size == 0) {
FileUtil::CreateEmptyFile(full_path);
diff --git a/src/core/hle/result.h b/src/core/hle/result.h
index 69613fbbb..b9ee5f7d9 100644
--- a/src/core/hle/result.h
+++ b/src/core/hle/result.h
@@ -19,7 +19,9 @@
enum class ErrorDescription : u32 {
Success = 0,
WrongAddress = 53,
- FS_NotFound = 100,
+ FS_NotFound = 120,
+ FS_AlreadyExists = 190,
+ FS_NotAFile = 250,
FS_NotFormatted = 340, ///< This is used by the FS service when creating a SaveData archive
InvalidSection = 1000,
TooLarge = 1001,