summaryrefslogtreecommitdiff
path: root/src/core/loader
diff options
context:
space:
mode:
authorTheKoopaKingdom <thekoopakingdom@gmail.com>2017-03-08 20:21:31 -0500
committerTheKoopaKingdom <thekoopakingdom@gmail.com>2017-06-02 18:28:14 -0400
commit37bec598ea28662462dcaab65d5abd6db8372dbc (patch)
treee1aa020f3884d601182155791d9c474df04fd133 /src/core/loader
parent1ecb322daa0e2521fe0e179e87889db9aaaf63b0 (diff)
Made some changes from review comments:
- Made LoadKernelSystemMode return a pair consisting of a system mode and a result code (Could use review). - Deleted ErrorOpenGL error code in favor of just having ErrorVideoCore. - Made dialog messages more clear. - Compared archive ID in fs_user.cpp to ArchiveIdCode::NCCH as opposed to hex magic. - Cleaned up some other stuff.
Diffstat (limited to 'src/core/loader')
-rw-r--r--src/core/loader/loader.h11
-rw-r--r--src/core/loader/ncch.cpp11
-rw-r--r--src/core/loader/ncch.h5
3 files changed, 12 insertions, 15 deletions
diff --git a/src/core/loader/loader.h b/src/core/loader/loader.h
index 21f73503e..0a2d4a10e 100644
--- a/src/core/loader/loader.h
+++ b/src/core/loader/loader.h
@@ -8,8 +8,11 @@
#include <initializer_list>
#include <memory>
#include <string>
+#include <utility>
#include <vector>
+
#include <boost/optional.hpp>
+
#include "common/common_types.h"
#include "common/file_util.h"
@@ -100,13 +103,11 @@ public:
* Loads the system mode that this application needs.
* This function defaults to 2 (96MB allocated to the application) if it can't read the
* information.
- * @param boost::optional<u32> Reference to Boost optional to store system mode.
- * @ return Result of operation.
+ * @return A pair with the system mode (If found) and the result.
*/
- virtual ResultStatus LoadKernelSystemMode(boost::optional<u32>& system_mode) {
+ virtual std::pair<boost::optional<u32>, ResultStatus> LoadKernelSystemMode() {
// 96MB allocated to the application.
- system_mode = 2;
- return ResultStatus::Success;
+ return std::make_pair(2, ResultStatus::Success);
}
/**
diff --git a/src/core/loader/ncch.cpp b/src/core/loader/ncch.cpp
index 1a20762e4..ffc019560 100644
--- a/src/core/loader/ncch.cpp
+++ b/src/core/loader/ncch.cpp
@@ -121,19 +121,16 @@ FileType AppLoader_NCCH::IdentifyType(FileUtil::IOFile& file) {
return FileType::Error;
}
-ResultStatus AppLoader_NCCH::LoadKernelSystemMode(boost::optional<u32>& system_mode) {
+std::pair<boost::optional<u32>, ResultStatus> AppLoader_NCCH::LoadKernelSystemMode() {
if (!is_loaded) {
ResultStatus res = LoadExeFS();
if (res != ResultStatus::Success) {
- // Set the system mode as invalid.
- system_mode = boost::none;
- // Return the error code.
- return res;
+ return std::make_pair(boost::none, res);
}
}
// Set the system mode as the one from the exheader.
- system_mode = exheader_header.arm11_system_local_caps.system_mode.Value();
- return ResultStatus::Success;
+ return std::make_pair(exheader_header.arm11_system_local_caps.system_mode.Value(),
+ ResultStatus::Success);
}
ResultStatus AppLoader_NCCH::LoadExec() {
diff --git a/src/core/loader/ncch.h b/src/core/loader/ncch.h
index 269fe4f49..712d496a4 100644
--- a/src/core/loader/ncch.h
+++ b/src/core/loader/ncch.h
@@ -179,10 +179,9 @@ public:
/**
* Loads the Exheader and returns the system mode for this application.
- * @param boost::optional<u32> Reference to Boost optional to store system mode.
- * @return Result of operation.
+ * @return A pair with the system mode (If found) and the result.
*/
- ResultStatus LoadKernelSystemMode(boost::optional<u32>& system_mode) override;
+ std::pair<boost::optional<u32>, ResultStatus> LoadKernelSystemMode() override;
ResultStatus ReadCode(std::vector<u8>& buffer) override;