1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-09 09:34:57 +09:00

Kernel: Make self-contained locking smart pointers their own classes

Until now, our kernel has reimplemented a number of AK classes to
provide automatic internal locking:

- RefPtr
- NonnullRefPtr
- WeakPtr
- Weakable

This patch renames the Kernel classes so that they can coexist with
the original AK classes:

- RefPtr => LockRefPtr
- NonnullRefPtr => NonnullLockRefPtr
- WeakPtr => LockWeakPtr
- Weakable => LockWeakable

The goal here is to eventually get rid of the Lock* classes in favor of
using external locking.
This commit is contained in:
Andreas Kling 2022-08-19 20:53:40 +02:00
parent e475263113
commit 11eee67b85
Notes: sideshowbarker 2024-07-17 08:07:15 +09:00
360 changed files with 1703 additions and 1672 deletions

View file

@ -55,7 +55,7 @@ struct Array;
template<typename Container, typename ValueType>
class SimpleIterator;
using ReadonlyBytes = Span<const u8>;
using ReadonlyBytes = Span<u8 const>;
using Bytes = Span<u8>;
template<typename T, AK::MemoryOrder DefaultMemoryOrder>
@ -107,24 +107,30 @@ template<typename T>
class NonnullOwnPtr;
template<typename T, size_t inline_capacity = 0>
class NonnullRefPtrVector;
class NonnullOwnPtrVector;
template<typename T, size_t inline_capacity = 0>
class NonnullOwnPtrVector;
class NonnullRefPtrVector;
template<typename T>
class Optional;
#ifdef KERNEL
template<typename T>
struct RefPtrTraits;
class NonnullLockRefPtr;
template<typename T, size_t inline_capacity = 0>
class NonnullLockRefPtrVector;
template<typename T>
struct LockRefPtrTraits;
template<typename T, typename PtrTraits = LockRefPtrTraits<T>>
class LockRefPtr;
#endif
template<typename T, typename PtrTraits = RefPtrTraits<T>>
class RefPtr;
#else
template<typename T>
class RefPtr;
#endif
template<typename T>
class OwnPtr;
@ -192,3 +198,10 @@ using AK::Utf32View;
using AK::Utf8CodePointIterator;
using AK::Utf8View;
using AK::Vector;
#ifdef KERNEL
using AK::LockRefPtr;
using AK::LockRefPtrTraits;
using AK::NonnullLockRefPtr;
using AK::NonnullLockRefPtrVector;
#endif