1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 02:58:12 +00:00
serenity/Userland/Libraries/LibJS/Heap
AnotherTest e4412f1f59 AK+Kernel: Make IntrusiveList capable of holding non-raw pointers
This should allow creating intrusive lists that have smart pointers,
while remaining free (compared to the impl before this commit) when
holding raw pointers :^)
As a sidenote, this also adds a `RawPtr<T>` type, which is just
equivalent to `T*`.
Note that this does not actually use such functionality, but is only
expected to pave the way for #6369, to replace NonnullRefPtrVector<T>
with intrusive lists.

As it is with zero-cost things, this makes the interface a bit less nice
by requiring the type name of what an `IntrusiveListNode` holds (and
optionally its container, if not RawPtr), and also requiring the type of
the container (normally `RawPtr`) on the `IntrusiveList` instance.
2021-04-16 22:26:52 +02:00
..
Allocator.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Allocator.h AK+Kernel: Make IntrusiveList capable of holding non-raw pointers 2021-04-16 22:26:52 +02:00
DeferGC.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Handle.cpp LibJS: Always inline Cell::vm() and Cell::heap() 2021-03-21 21:39:39 +01:00
Handle.h Libraries: Move to Userland/Libraries/ 2021-01-12 12:17:46 +01:00
Heap.cpp LibJS: Use dbgln_if in Heap.cpp 2021-04-08 23:57:16 +02:00
Heap.h AK+Everywhere: Make StdLibExtras templates less wrapper-y 2021-04-10 21:01:31 +02:00
HeapBlock.cpp Userland: Remove superfluous headers 2021-03-11 12:32:53 +01:00
HeapBlock.h AK+Kernel: Make IntrusiveList capable of holding non-raw pointers 2021-04-16 22:26:52 +02:00