Pārlūkot izejas kodu

LibJS: Use HashMap::remove_all_matching() in WeakMap

Andreas Kling 3 gadi atpakaļ
vecāks
revīzija
c7ac0c2c80
1 mainītis faili ar 3 papildinājumiem un 8 dzēšanām
  1. 3 8
      Userland/Libraries/LibJS/Runtime/WeakMap.cpp

+ 3 - 8
Userland/Libraries/LibJS/Runtime/WeakMap.cpp

@@ -25,14 +25,9 @@ WeakMap::~WeakMap()
 
 void WeakMap::remove_dead_cells(Badge<Heap>)
 {
-    // FIXME: Do this in a single pass.
-    Vector<Cell*> to_remove;
-    for (auto& it : m_values) {
-        if (it.key->state() != Cell::State::Live)
-            to_remove.append(it.key);
-    }
-    for (auto* cell : to_remove)
-        m_values.remove(cell);
+    m_values.remove_all_matching([](Cell* key, Value) {
+        return key->state() != Cell::State::Live;
+    });
 }
 
 void WeakMap::visit_edges(Visitor& visitor)