yuzu-mainline/src/core/hle/kernel/k_auto_object_container.cpp

36 lines
797 B
C++
Raw Normal View History

// Copyright 2021 yuzu Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#include "core/hle/kernel/k_auto_object_container.h"
namespace Kernel {
void KAutoObjectWithListContainer::Register(KAutoObjectWithList* obj) {
KScopedLightLock lk(m_lock);
m_object_list.insert(*obj);
}
void KAutoObjectWithListContainer::Unregister(KAutoObjectWithList* obj) {
KScopedLightLock lk(m_lock);
m_object_list.erase(m_object_list.iterator_to(*obj));
}
size_t KAutoObjectWithListContainer::GetOwnedCount(Process* owner) {
KScopedLightLock lk(m_lock);
size_t count = 0;
for (auto& obj : m_object_list) {
if (obj.GetOwner() == owner) {
count++;
}
}
return count;
}
} // namespace Kernel