diff options
| author | 2015-01-06 19:49:25 +0000 | |
|---|---|---|
| committer | 2015-01-15 21:21:26 +0000 | |
| commit | 85030c6e6bfe83b6671de45b25535fe3ef713319 (patch) | |
| tree | 03a9735f1c306c4679359b64b29013a9d350bfde /src | |
| parent | Loader: Don’t duplicate the docstring into the cpp file. (diff) | |
| download | yuzu-85030c6e6bfe83b6671de45b25535fe3ef713319.tar.gz yuzu-85030c6e6bfe83b6671de45b25535fe3ef713319.tar.xz yuzu-85030c6e6bfe83b6671de45b25535fe3ef713319.zip | |
Loader: Never forget to change is_loaded.
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/loader/3dsx.cpp | 7 | ||||
| -rw-r--r-- | src/core/loader/3dsx.h | 2 | ||||
| -rw-r--r-- | src/core/loader/elf.cpp | 4 | ||||
| -rw-r--r-- | src/core/loader/elf.h | 2 | ||||
| -rw-r--r-- | src/core/loader/ncch.cpp | 5 | ||||
| -rw-r--r-- | src/core/loader/ncch.h | 2 |
6 files changed, 15 insertions, 7 deletions
diff --git a/src/core/loader/3dsx.cpp b/src/core/loader/3dsx.cpp index 06827668f..15032e0ae 100644 --- a/src/core/loader/3dsx.cpp +++ b/src/core/loader/3dsx.cpp | |||
| @@ -215,13 +215,20 @@ AppLoader_THREEDSX::~AppLoader_THREEDSX() { | |||
| 215 | 215 | ||
| 216 | ResultStatus AppLoader_THREEDSX::Load() { | 216 | ResultStatus AppLoader_THREEDSX::Load() { |
| 217 | LOG_INFO(Loader, "Loading 3DSX file %s...", filename.c_str()); | 217 | LOG_INFO(Loader, "Loading 3DSX file %s...", filename.c_str()); |
| 218 | |||
| 219 | if (is_loaded) | ||
| 220 | return ResultStatus::ErrorAlreadyLoaded; | ||
| 221 | |||
| 218 | FileUtil::IOFile file(filename, "rb"); | 222 | FileUtil::IOFile file(filename, "rb"); |
| 223 | |||
| 219 | if (file.IsOpen()) { | 224 | if (file.IsOpen()) { |
| 220 | THREEDSXReader::Load3DSXFile(filename, 0x00100000); | 225 | THREEDSXReader::Load3DSXFile(filename, 0x00100000); |
| 221 | Kernel::LoadExec(0x00100000); | 226 | Kernel::LoadExec(0x00100000); |
| 222 | } else { | 227 | } else { |
| 223 | return ResultStatus::Error; | 228 | return ResultStatus::Error; |
| 224 | } | 229 | } |
| 230 | |||
| 231 | is_loaded = true; | ||
| 225 | return ResultStatus::Success; | 232 | return ResultStatus::Success; |
| 226 | } | 233 | } |
| 227 | 234 | ||
diff --git a/src/core/loader/3dsx.h b/src/core/loader/3dsx.h index da8836662..f28224628 100644 --- a/src/core/loader/3dsx.h +++ b/src/core/loader/3dsx.h | |||
| @@ -26,7 +26,7 @@ public: | |||
| 26 | 26 | ||
| 27 | private: | 27 | private: |
| 28 | std::string filename; | 28 | std::string filename; |
| 29 | bool is_loaded; | 29 | bool is_loaded = false; |
| 30 | }; | 30 | }; |
| 31 | 31 | ||
| 32 | } // namespace Loader | 32 | } // namespace Loader |
diff --git a/src/core/loader/elf.cpp b/src/core/loader/elf.cpp index 89664229a..ee711d8b2 100644 --- a/src/core/loader/elf.cpp +++ b/src/core/loader/elf.cpp | |||
| @@ -331,7 +331,7 @@ bool ElfReader::LoadSymbols() { | |||
| 331 | namespace Loader { | 331 | namespace Loader { |
| 332 | 332 | ||
| 333 | /// AppLoader_ELF constructor | 333 | /// AppLoader_ELF constructor |
| 334 | AppLoader_ELF::AppLoader_ELF(const std::string& filename) : is_loaded(false) { | 334 | AppLoader_ELF::AppLoader_ELF(const std::string& filename) { |
| 335 | this->filename = filename; | 335 | this->filename = filename; |
| 336 | } | 336 | } |
| 337 | 337 | ||
| @@ -358,6 +358,8 @@ ResultStatus AppLoader_ELF::Load() { | |||
| 358 | } else { | 358 | } else { |
| 359 | return ResultStatus::Error; | 359 | return ResultStatus::Error; |
| 360 | } | 360 | } |
| 361 | |||
| 362 | is_loaded = true; | ||
| 361 | return ResultStatus::Success; | 363 | return ResultStatus::Success; |
| 362 | } | 364 | } |
| 363 | 365 | ||
diff --git a/src/core/loader/elf.h b/src/core/loader/elf.h index c221cce6d..856722f1e 100644 --- a/src/core/loader/elf.h +++ b/src/core/loader/elf.h | |||
| @@ -26,7 +26,7 @@ public: | |||
| 26 | 26 | ||
| 27 | private: | 27 | private: |
| 28 | std::string filename; | 28 | std::string filename; |
| 29 | bool is_loaded; | 29 | bool is_loaded = false; |
| 30 | }; | 30 | }; |
| 31 | 31 | ||
| 32 | } // namespace Loader | 32 | } // namespace Loader |
diff --git a/src/core/loader/ncch.cpp b/src/core/loader/ncch.cpp index f1d01252e..0793cc7cd 100644 --- a/src/core/loader/ncch.cpp +++ b/src/core/loader/ncch.cpp | |||
| @@ -102,7 +102,6 @@ static bool LZSS_Decompress(u8* compressed, u32 compressed_size, u8* decompresse | |||
| 102 | /// AppLoader_NCCH constructor | 102 | /// AppLoader_NCCH constructor |
| 103 | AppLoader_NCCH::AppLoader_NCCH(const std::string& filename) { | 103 | AppLoader_NCCH::AppLoader_NCCH(const std::string& filename) { |
| 104 | this->filename = filename; | 104 | this->filename = filename; |
| 105 | is_loaded = false; | ||
| 106 | is_compressed = false; | 105 | is_compressed = false; |
| 107 | entry_point = 0; | 106 | entry_point = 0; |
| 108 | ncch_offset = 0; | 107 | ncch_offset = 0; |
| @@ -221,10 +220,10 @@ ResultStatus AppLoader_NCCH::Load() { | |||
| 221 | file.Seek(exefs_offset + ncch_offset, 0); | 220 | file.Seek(exefs_offset + ncch_offset, 0); |
| 222 | file.ReadBytes(&exefs_header, sizeof(ExeFs_Header)); | 221 | file.ReadBytes(&exefs_header, sizeof(ExeFs_Header)); |
| 223 | 222 | ||
| 224 | is_loaded = true; // Set state to loaded | ||
| 225 | |||
| 226 | LoadExec(); // Load the executable into memory for booting | 223 | LoadExec(); // Load the executable into memory for booting |
| 227 | 224 | ||
| 225 | is_loaded = true; // Set state to loaded | ||
| 226 | |||
| 228 | return ResultStatus::Success; | 227 | return ResultStatus::Success; |
| 229 | } else { | 228 | } else { |
| 230 | LOG_ERROR(Loader, "Unable to read file %s!", filename.c_str()); | 229 | LOG_ERROR(Loader, "Unable to read file %s!", filename.c_str()); |
diff --git a/src/core/loader/ncch.h b/src/core/loader/ncch.h index fd9258970..184a20d98 100644 --- a/src/core/loader/ncch.h +++ b/src/core/loader/ncch.h | |||
| @@ -215,7 +215,7 @@ private: | |||
| 215 | 215 | ||
| 216 | std::string filename; | 216 | std::string filename; |
| 217 | 217 | ||
| 218 | bool is_loaded; | 218 | bool is_loaded = false; |
| 219 | bool is_compressed; | 219 | bool is_compressed; |
| 220 | 220 | ||
| 221 | u32 entry_point; | 221 | u32 entry_point; |