36 lines
797 B
C++
36 lines
797 B
C++
|
// 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
|