aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/hid/controllers/npad.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2021-04-09 22:42:23 -0700
committerbunnei <bunneidev@gmail.com>2021-05-05 16:40:51 -0700
commit89edbe8aa20d278d6f2c5ab735163f0d96ff88d2 (patch)
tree568023bd7dbb880730c2cbbcbafe025045fe2f7b /src/core/hle/service/hid/controllers/npad.cpp
parentb6156e735cd78d4b7863491ae6bdc63e44404b73 (diff)
hle: kernel: Refactor several threads/events/sharedmemory to use slab heaps.
Diffstat (limited to 'src/core/hle/service/hid/controllers/npad.cpp')
-rw-r--r--src/core/hle/service/hid/controllers/npad.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp
index 753875d6e..77768ca7d 100644
--- a/src/core/hle/service/hid/controllers/npad.cpp
+++ b/src/core/hle/service/hid/controllers/npad.cpp
@@ -253,8 +253,7 @@ void Controller_NPad::InitNewlyAddedController(std::size_t controller_idx) {
void Controller_NPad::OnInit() {
auto& kernel = system.Kernel();
for (std::size_t i = 0; i < styleset_changed_events.size(); ++i) {
- styleset_changed_events[i] = std::make_unique<Kernel::KEvent>(kernel);
- Kernel::KAutoObject::Create(styleset_changed_events[i].get());
+ styleset_changed_events[i] = Kernel::KEvent::Create(kernel);
styleset_changed_events[i]->Initialize(fmt::format("npad:NpadStyleSetChanged_{}", i));
}
@@ -341,6 +340,11 @@ void Controller_NPad::OnRelease() {
VibrateControllerAtIndex(npad_idx, device_idx, {});
}
}
+
+ for (std::size_t i = 0; i < styleset_changed_events.size(); ++i) {
+ styleset_changed_events[i]->Close();
+ styleset_changed_events[i] = nullptr;
+ }
}
void Controller_NPad::RequestPadStateUpdate(u32 npad_id) {