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:
parent
e475263113
commit
11eee67b85
Notes:
sideshowbarker
2024-07-17 08:07:15 +09:00
Author: https://github.com/awesomekling
Commit: 11eee67b85
360 changed files with 1703 additions and 1672 deletions
29
AK/Forward.h
29
AK/Forward.h
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue