1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 18:38:10 +00:00
serenity/Libraries
Andreas Kling 48f13b7c3f LibJS: Split Heap into per-cell-size allocators
Instead of keeping all the HeapBlocks in one big list, we now split it
into two levels:

- Heap has a set of Allocators, each with a specific cell size.
- Allocators have two lists of blocks, "full" and "usable".

Allocating a new cell no longer has to scan the entire set of blocks,
but instead just needs to find the right allocator and then pop a cell
from its freelist. If all the blocks in the allocator are full, a new
block will be created.

Blocks are moved from the "full" to "usable" list after sweeping has
determined that they are not completely empty and not completely full.

There are certainly many ways we can improve on this. This patch is
mostly about getting the new allocator architecture in place. :^)
2020-10-06 18:50:47 +02:00
..
LibAudio Everywhere: Fix typos 2020-10-02 16:03:17 +02:00
LibC AK: Make the return type of dbgputstr consistent. 2020-10-04 19:18:32 +02:00
LibChess Everywhere: Fix more typos 2020-10-03 12:36:49 +02:00
LibCompress Everywhere: Fix typos 2020-10-02 16:03:17 +02:00
LibCore LibCore: Add ensure_parent_directories to LibCore::File 2020-09-30 21:46:59 +02:00
LibCpp LibCpp: Add library for working with c++ code 2020-09-30 21:46:59 +02:00
LibCrypt Everywhere: Port to String::copy_characters_to_buffer() 2020-08-30 17:35:27 +02:00
LibCrypto Meta+LibC through LibHTTP: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
LibDebug Everywhere: Fix more typos 2020-10-03 12:36:49 +02:00
LibDesktop Meta+LibC through LibHTTP: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
LibDiff LibDiff: Add library for working with diffs 2020-09-15 21:43:29 +02:00
LibELF Everywhere: Fix more typos 2020-10-03 12:36:49 +02:00
LibGemini LibGemini: Fix crash on Link lines without explicit link text 2020-10-06 17:16:16 +02:00
LibGfx LibGfx+FontEditor+Fonts: Add "mean line" value to all fonts 2020-10-05 20:05:40 +02:00
LibGUI LibGUI: Add formatter for ModelIndex. 2020-10-06 15:04:37 +02:00
LibHTTP ProtocolServer+LibWeb: Support more detailed HTTP requests 2020-09-28 11:55:26 +02:00
LibImageDecoderClient AK: Add trivial structure validation to SharedBuffer 2020-10-02 15:38:07 +02:00
LibIPC LibIPC: Make IPC::encode() and ::decode() fail at compiletime when used 2020-10-04 23:12:28 +02:00
LibJS LibJS: Split Heap into per-cell-size allocators 2020-10-06 18:50:47 +02:00
LibKeyboard Kernel+LibKeyboard: Store the keymap name when setting system keymap 2020-08-06 17:45:06 +02:00
LibLine Shell+LibLine: Record the input offset of completions 2020-10-04 23:12:28 +02:00
LibM Meta+LibHTTP through LibWeb: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
LibMarkdown LibMarkdown: Parse paragraphs line-wise 2020-09-27 21:14:18 +02:00
LibPCIDB LibPCIDB: Mark compilation-unit-only functions as static 2020-08-12 20:40:59 +02:00
LibProtocol AK: Add trivial structure validation to SharedBuffer 2020-10-02 15:38:07 +02:00
LibPthread Meta+LibHTTP through LibWeb: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
LibTar Userland: tar: support extracting gzipped files 2020-10-04 00:16:40 +02:00
LibTextCodec LibTextCodec: Mark compilation-unit-only functions as static 2020-08-12 20:40:59 +02:00
LibThread HackStudio: Detach from debugged process before terminating 2020-09-26 17:18:21 +02:00
LibTLS Everywhere: Fix typos 2020-10-02 16:03:17 +02:00
LibUnwind Everywhere: Fix typos 2020-10-02 16:03:17 +02:00
LibVT Everywhere: Fix typos 2020-10-02 16:03:17 +02:00
LibWeb LibWeb: Fix build after GEMINI_DEBUG oopsie 2020-10-06 17:48:42 +02:00
LibX86 UserspaceEmulator+LibX86: Clean up some obnoxious template spam 2020-09-23 21:15:01 +02:00
CMakeLists.txt LibTar: Create LibTar and TarStream 2020-10-04 00:16:40 +02:00