Kernel: Use range-for with InlineLinkedList

This commit is contained in:
Andreas Kling 2019-08-08 13:40:58 +02:00
parent 028e834bb4
commit 9104d32341
Notes: sideshowbarker 2024-07-19 12:49:09 +09:00
6 changed files with 21 additions and 21 deletions

View file

@ -15,13 +15,13 @@ static Lockable<InlineLinkedList<Custody>>& all_custodies()
Custody* Custody::get_if_cached(Custody* parent, const String& name)
{
LOCKER(all_custodies().lock());
for (auto* custody = all_custodies().resource().head(); custody; custody = custody->next()) {
if (custody->is_deleted())
for (auto& custody : all_custodies().resource()) {
if (custody.is_deleted())
continue;
if (custody->is_mounted_on())
if (custody.is_mounted_on())
continue;
if (custody->parent() == parent && custody->name() == name)
return custody;
if (custody.parent() == parent && custody.name() == name)
return &custody;
}
return nullptr;
}

View file

@ -18,9 +18,9 @@ void Inode::sync()
NonnullRefPtrVector<Inode, 32> inodes;
{
InterruptDisabler disabler;
for (auto* inode = all_inodes().head(); inode; inode = inode->next()) {
if (inode->is_metadata_dirty())
inodes.append(*inode);
for (auto& inode : all_inodes()) {
if (inode.is_metadata_dirty())
inodes.append(inode);
}
}

View file

@ -596,8 +596,8 @@ Optional<KBuffer> procfs$inodes(InodeIdentifier)
extern InlineLinkedList<Inode>& all_inodes();
KBufferBuilder builder;
InterruptDisabler disabler;
for (auto* inode = all_inodes().head(); inode; inode = inode->next()) {
builder.appendf("Inode{K%x} %02u:%08u (%u)\n", inode, inode->fsid(), inode->index(), inode->ref_count());
for (auto& inode : all_inodes()) {
builder.appendf("Inode{K%x} %02u:%08u (%u)\n", &inode, inode.fsid(), inode.index(), inode.ref_count());
}
return builder.build();
}

View file

@ -110,12 +110,12 @@ void VMObject::for_each_region(Callback callback)
{
// FIXME: Figure out a better data structure so we don't have to walk every single region every time an inode changes.
// Perhaps VMObject could have a Vector<Region*> with all of his mappers?
for (auto* region = MM.m_user_regions.head(); region; region = region->next()) {
if (&region->vmo() == this)
callback(*region);
for (auto& region : MM.m_user_regions) {
if (&region.vmo() == this)
callback(region);
}
for (auto* region = MM.m_kernel_regions.head(); region; region = region->next()) {
if (&region->vmo() == this)
callback(*region);
for (auto& region : MM.m_kernel_regions) {
if (&region.vmo() == this)
callback(region);
}
}

View file

@ -246,9 +246,9 @@ Region* MemoryManager::kernel_region_from_vaddr(VirtualAddress vaddr)
{
if (vaddr.get() < 0xc0000000)
return nullptr;
for (auto* region = MM.m_kernel_regions.head(); region; region = region->next()) {
if (region->contains(vaddr))
return region;
for (auto& region : MM.m_kernel_regions) {
if (region.contains(vaddr))
return &region;
}
return nullptr;
}

View file

@ -83,8 +83,8 @@ public:
template<typename Callback>
static void for_each_vmobject(Callback callback)
{
for (auto* vmobject = MM.m_vmobjects.head(); vmobject; vmobject = vmobject->next()) {
if (callback(*vmobject) == IterationDecision::Break)
for (auto& vmobject : MM.m_vmobjects) {
if (callback(vmobject) == IterationDecision::Break)
break;
}
}