LibWeb/IDB: Implement delete_records_from_an_object_store

This commit is contained in:
stelar7 2025-04-11 11:34:52 +02:00 committed by Andrew Kaster
commit afe7951af4
Notes: github-actions[bot] 2025-04-23 18:37:14 +00:00
4 changed files with 35 additions and 0 deletions

View file

@ -4,6 +4,7 @@
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <LibWeb/IndexedDB/IDBKeyRange.h>
#include <LibWeb/IndexedDB/Internal/ObjectStore.h>
namespace Web::IndexedDB {
@ -33,6 +34,17 @@ void ObjectStore::visit_edges(Visitor& visitor)
Base::visit_edges(visitor);
visitor.visit(m_database);
visitor.visit(m_indexes);
for (auto& record : m_records) {
visitor.visit(record.key);
}
}
void ObjectStore::remove_records_in_range(GC::Ref<IDBKeyRange> range)
{
m_records.remove_all_matching([&](auto const& record) {
return range->is_in_range(record.key);
});
}
}