aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/am/applets/applets.cpp
diff options
context:
space:
mode:
authorZach Hilman <zachhilman@gmail.com>2018-11-17 12:19:06 -0500
committerZach Hilman <zachhilman@gmail.com>2018-11-18 10:53:47 -0500
commit4ee087fb3ca2b1e064422b73195a8ff7698721d9 (patch)
tree5dcd31972d79e324e8eb75e19c3c00ff2a83b03c /src/core/hle/service/am/applets/applets.cpp
parent19b2571aecfff680c7a414c505eafc26264b6f2f (diff)
applet: Use std::queue instead of std::vector for storage stack
Diffstat (limited to 'src/core/hle/service/am/applets/applets.cpp')
-rw-r--r--src/core/hle/service/am/applets/applets.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/core/hle/service/am/applets/applets.cpp b/src/core/hle/service/am/applets/applets.cpp
index 03b9d83e7..be950d320 100644
--- a/src/core/hle/service/am/applets/applets.cpp
+++ b/src/core/hle/service/am/applets/applets.cpp
@@ -2,7 +2,10 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
+#include <cstring>
+#include "common/assert.h"
#include "core/frontend/applets/software_keyboard.h"
+#include "core/hle/service/am/am.h"
#include "core/hle/service/am/applets/applets.h"
namespace Service::AM::Applets {
@@ -11,8 +14,15 @@ Applet::Applet() = default;
Applet::~Applet() = default;
-void Applet::Initialize(std::vector<std::shared_ptr<IStorage>> storage) {
+void Applet::Initialize(std::queue<std::shared_ptr<IStorage>> storage) {
storage_stack = std::move(storage);
+
+ const auto common_data = storage_stack.front()->GetData();
+ storage_stack.pop();
+
+ ASSERT(common_data.size() >= sizeof(CommonArguments));
+ std::memcpy(&common_args, common_data.data(), sizeof(CommonArguments));
+
initialized = true;
}