summaryrefslogtreecommitdiffstats
path: root/src/core/hle/kernel/k_event.cpp
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2022-11-10 22:14:03 +0100
committerLiam <byteslice@airmail.cc>2022-11-10 22:14:03 +0100
commitb34d3d58821d15ecb5ffc1b436c908ffbb29adea (patch)
tree4fa9410de31105b97be7de27b70db49bee2e6699 /src/core/hle/kernel/k_event.cpp
parentMerge pull request #9183 from liamwhite/svc-refresh (diff)
downloadyuzu-b34d3d58821d15ecb5ffc1b436c908ffbb29adea.tar
yuzu-b34d3d58821d15ecb5ffc1b436c908ffbb29adea.tar.gz
yuzu-b34d3d58821d15ecb5ffc1b436c908ffbb29adea.tar.bz2
yuzu-b34d3d58821d15ecb5ffc1b436c908ffbb29adea.tar.lz
yuzu-b34d3d58821d15ecb5ffc1b436c908ffbb29adea.tar.xz
yuzu-b34d3d58821d15ecb5ffc1b436c908ffbb29adea.tar.zst
yuzu-b34d3d58821d15ecb5ffc1b436c908ffbb29adea.zip
Diffstat (limited to '')
-rw-r--r--src/core/hle/kernel/k_event.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/core/hle/kernel/k_event.cpp b/src/core/hle/kernel/k_event.cpp
index 27f70e5c5..d973853ab 100644
--- a/src/core/hle/kernel/k_event.cpp
+++ b/src/core/hle/kernel/k_event.cpp
@@ -20,8 +20,12 @@ void KEvent::Initialize(KProcess* owner) {
m_readable_event.Initialize(this);
// Set our owner process.
- m_owner = owner;
- m_owner->Open();
+ // HACK: this should never be nullptr, but service threads don't have a
+ // proper parent process yet.
+ if (owner != nullptr) {
+ m_owner = owner;
+ m_owner->Open();
+ }
// Mark initialized.
m_initialized = true;
@@ -50,8 +54,11 @@ Result KEvent::Clear() {
void KEvent::PostDestroy(uintptr_t arg) {
// Release the event count resource the owner process holds.
KProcess* owner = reinterpret_cast<KProcess*>(arg);
- owner->GetResourceLimit()->Release(LimitableResource::EventCountMax, 1);
- owner->Close();
+
+ if (owner != nullptr) {
+ owner->GetResourceLimit()->Release(LimitableResource::EventCountMax, 1);
+ owner->Close();
+ }
}
} // namespace Kernel