1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 21:07:36 +00:00
serenity/Userland/Libraries
Andreas Kling e0493c509e LibJS: Make the forward transition chain weakly cached
Before this patch, every shape would permanently remember every other
shape it had ever transitioned to. This could lead to pathological
accumulation of unused shape objects in some cases.

Fix this by using WeakPtr instead of a strongly visited Shape* in the
the forward transition chain map. This means that we will now miss out
on some shape sharing opportunities, but since this is not required
for correctness it doesn't matter.

Note that the backward transition chain is still strongly cached,
as it's necessary for the reification of property tables.

An interesting future optimization could be to allow property tables
to get garbage collected (by detaching them from the shape object)
and then reconstituted from the backwards transition chain (if needed.)
2021-05-17 21:40:18 +02:00
..
LibArchive LibArchive: Move method implementations away from header 2021-05-17 18:14:05 +01:00
LibAudio LibCore+Everywhere: Move OpenMode out of IODevice 2021-05-12 11:00:45 +01:00
LibC Kernel+Userspace: Implement the accept4() system call 2021-05-17 13:32:19 +02:00
LibChess Chess: Fix signed/unsigned issues 2021-05-17 18:14:05 +01:00
LibCompress LibCompress: Add missing #include 2021-05-16 19:21:47 +02:00
LibCore LibCore: Close accepted sockets on exec() and make them non-blocking 2021-05-17 13:32:19 +02:00
LibCoreDump Everywhere: Use linusg@serenityos.org for my copyright headers 2021-04-22 22:51:19 +02:00
LibCpp LibCpp: Modify parsing of a Name's scope 2021-05-15 23:28:50 +02:00
LibCrypt Everywhere: Add a blank line after copyright header where missing 2021-05-15 00:27:09 +01:00
LibCrypto LibCrypto: Change static constexpr array to function local constexpr 2021-05-17 19:37:56 +01:00
LibDebug Userland: Add missing #includes 2021-05-16 17:49:42 +02:00
LibDesktop Userland: Add try_* IPC handlers 2021-05-03 21:14:40 +02:00
LibDiff LibDiff: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
LibDl Everywhere: "file name" => "filename" 2021-04-29 22:16:18 +02:00
LibELF LibELF: Fix an integer overflow in Image::find_sorted_symbol 2021-05-17 14:58:13 +02:00
LibGemini AK+Userland: Remove nullability feature for the ByteBuffer type 2021-05-16 17:49:42 +02:00
LibGfx Everywhere: Fix a bunch of typos 2021-05-17 17:48:55 +01:00
LibGL Everywhere: Fix a bunch of typos 2021-05-17 17:48:55 +01:00
LibGUI WindowServer+LibGUI: Make menubar allocation asynchronous 2021-05-17 13:33:41 +02:00
LibHTTP LibHTTP: Make sure we're not sending an empty path in requests 2021-05-17 21:28:00 +02:00
LibImageDecoderClient LibImageDecoderClient: Decoded images with 0 frames are not successful 2021-05-14 21:02:14 +02:00
LibIPC LibC: Do not include errno.h inside unistd.h 2021-05-14 22:24:02 +02:00
LibJS LibJS: Make the forward transition chain weakly cached 2021-05-17 21:40:18 +02:00
LibKeyboard LibCore+Everywhere: Move OpenMode out of IODevice 2021-05-12 11:00:45 +01:00
LibLine Userland: Don't explicitly call Vector<T>::is_null() 2021-05-16 17:49:42 +02:00
LibM LibC: Add declarations for various C11 math functions 2021-05-09 15:35:01 +02:00
LibMarkdown LibMarkdown: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
LibPCIDB Everywhere: "file name" => "filename" 2021-04-29 22:16:18 +02:00
LibPDF LibPDF: Parse nested Page Tree structures 2021-05-10 10:32:39 +02:00
LibProtocol Userland: Make IPC results with one return value available directly 2021-05-03 21:14:40 +02:00
LibPthread Everywhere: Fix a bunch of typos 2021-05-17 17:48:55 +01:00
LibRegex LibRegex: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
LibSQL Everywhere: Fix a bunch of typos 2021-05-17 17:48:55 +01:00
LibSymbolClient LibCore+Everywhere: Move OpenMode out of IODevice 2021-05-12 11:00:45 +01:00
LibSyntax LibSQL: Add a syntax highlighter 2021-05-09 09:39:05 +02:00
LibSystem Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LibTest LibTest: Convert Crash test runner to outln(..) 2021-05-08 00:04:10 +01:00
LibTextCodec LibTextCodec: Implement a Windows-1251 decoder 2021-05-01 17:59:08 +02:00
LibThread LibThread: Port Lock to foreign environments 2021-05-14 22:24:02 +02:00
LibTLS AK+Userland: Remove nullability feature for the ByteBuffer type 2021-05-16 17:49:42 +02:00
LibTTF LibCore+Everywhere: Move OpenMode out of IODevice 2021-05-12 11:00:45 +01:00
LibVT LibVT: Correct color handling 2021-05-17 18:19:49 +02:00
LibWasm LibWasm: Stub out/implement parsing of all ElementSection segments 2021-05-13 19:44:32 +01:00
LibWeb Everywhere: Fix a bunch of typos 2021-05-17 17:48:55 +01:00
LibWebSocket Everywhere: Fix a bunch of typos 2021-05-17 17:48:55 +01:00
LibX86 LibX86: Convert StringBuilder::appendf() => AK::Format 2021-05-07 21:12:09 +02:00
CMakeLists.txt LibPDF: Create basic object structure 2021-05-10 10:32:39 +02:00