浏览代码

UserspaceEmulator: Use `for_each_region_of_type` in `find_text_region`

Since we now have this helper template, we can make our code cleaner.
Daniel Bertalan 4 年之前
父节点
当前提交
e9dd9d1f2c
共有 1 个文件被更改,包括 3 次插入6 次删除
  1. 3 6
      Userland/DevTools/UserspaceEmulator/Emulator.cpp

+ 3 - 6
Userland/DevTools/UserspaceEmulator/Emulator.cpp

@@ -378,13 +378,10 @@ Vector<FlatPtr> Emulator::raw_backtrace()
 MmapRegion const* Emulator::find_text_region(FlatPtr address)
 {
     MmapRegion const* matching_region = nullptr;
-    mmu().for_each_region([&](auto& region) {
-        if (!is<MmapRegion>(region))
-            return IterationDecision::Continue;
-        auto const& mmap_region = static_cast<MmapRegion const&>(region);
-        if (!(mmap_region.is_executable() && address >= mmap_region.base() && address < mmap_region.base() + mmap_region.size()))
+    mmu().for_each_region_of_type<MmapRegion>([&](auto& region) {
+        if (!(region.is_executable() && address >= region.base() && address < region.base() + region.size()))
             return IterationDecision::Continue;
-        matching_region = &mmap_region;
+        matching_region = &region;
         return IterationDecision::Break;
     });
     return matching_region;