1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 18:28:12 +00:00
serenity/Userland/Libraries
kleines Filmröllchen 2f50d8f4d3 AK+LibC+LibPthread: Introduce NoAllocationGuard
NoAllocationGuard is an RAII stack guard that prevents allocations
while it exists. This is done through a thread-local global flag which
causes malloc to crash on a VERIFY if it is false. The guard allows for
recursion.

The intended use case for this class is in real-time audio code. In such
code, allocations are really bad, and this is an easy way of dynamically
enforcing the no-allocations rule while giving the user good feedback if
it is violated. Before real-time audio code is executed, e.g. in LibDSP,
a NoAllocationGuard is instantiated. This is not done with this commit,
as currently some code in LibDSP may still incorrectly allocate in real-
time situations.

Other use cases for the Kernel have also been added, so this commit
builds on the previous to add the support both in Userland and in the
Kernel.
2022-01-11 00:08:58 +01:00
..
LibArchive LibArchive: Limit all Tar header fields to their buffer length 2021-11-24 19:09:00 +02:00
LibAudio AK+Everywhere: Make FixedArray OOM-safe 2022-01-08 22:54:05 +01:00
LibC AK+LibC+LibPthread: Introduce NoAllocationGuard 2022-01-11 00:08:58 +01:00
LibCards AK: Convert AK::Format formatting helpers to returning ErrorOr<void> 2021-11-17 00:21:13 +01:00
LibChess Everywhere: Fix -Winconsistent-missing-override warnings from Clang 2021-12-11 13:14:15 -08:00
LibCompress Everywhere: Fix many spelling errors 2022-01-07 10:56:59 +01:00
LibConfig LibConfig: Add list methods for groups and keys 2021-11-18 09:08:51 +01:00
LibCore LibCore: Add beep wrapper 2022-01-09 11:16:00 +03:30
LibCoredump LibCore+AK: Move MappedFile from AK to LibCore 2021-11-23 11:33:36 +01:00
LibCpp LibCpp: Cast unused smart-pointer return values to void 2021-12-05 15:31:03 +01:00
LibCrypt LibCrypt: Link the SHA2 hash implementation into LibCrypt privately 2022-01-08 18:56:29 +01:00
LibCrypto LibCrypto: Link against LibCore 2022-01-09 20:40:22 +01:00
LibDebug Everywhere: Fix spelling mistakes 2022-01-07 15:44:42 +01:00
LibDesktop LibDesktop: Make allowlist APIs return ErrorOr<void> 2021-11-24 00:25:23 +01:00
LibDeviceTree Libraries: Add LibDeviceTree for manipulating OpenFirmware Device Trees 2021-10-21 19:20:03 -07:00
LibDiff LibDiff: Fix error when parsing a 'new' hunk location 2021-12-31 14:12:54 +01:00
LibDl LibC+LibDl: Declare functions taking no arguments as taking void 2022-01-08 19:22:00 +01:00
LibDSP LibDSP: Cast unused smart-pointer return value to void 2021-12-05 15:31:03 +01:00
LibELF LibELF: Add LD_LIBRARY_PATH envvar support :^) 2022-01-05 15:01:14 +02:00
LibFileSystemAccessClient LibFileSystemAccessClient: Allow custom access rights for open/save 2021-12-23 23:25:47 -08:00
LibGemini LibGemini: Avoid implicitly copying ByteBuffer 2021-12-08 09:46:13 -08:00
LibGfx LibGfx: Allow Vector{2,3,4} operators to accept different argument types 2022-01-09 16:21:13 +03:30
LibGL LibGL: Add stub for glColorMaterial 2022-01-09 23:23:01 +01:00
LibGUI LibGUI+AK: Add DRAG_DEBUG opt and put drag operations behind dbgln_if 2022-01-10 14:23:04 +01:00
LibHTTP LibHTTP: Avoid implicitly copying ByteBuffer 2021-12-08 09:46:13 -08:00
LibImageDecoderClient Everywhere: Pass AK::ReadonlyBytes by value 2021-11-11 01:27:46 +01:00
LibIMAP Everywhere: Pass AK::StringView by value 2021-11-11 01:27:46 +01:00
LibIPC LibIPC: Add IPC::take_over_accepted_client_from_system_server<Client>() 2021-12-06 19:22:16 +01:00
LibJS LibJS: Include hour-cycle in DateTimeFormat options 2022-01-10 16:18:05 +01:00
LibKeyboard LibKeyboard: Change some Optional<T> returns to ErrorOr<T> 2022-01-06 17:54:03 +01:00
LibLine LibLine: Replace call to vfork() with fork() 2022-01-07 11:02:30 +01:00
LibM LibM: Count fractions when exponent < -1 with mantissa == 0 2022-01-02 12:44:31 +03:30
LibMain LibMain: Make "Runtime error" warnln red 2021-12-23 12:41:13 -08:00
LibMarkdown Everywhere: Fix spelling mistakes 2022-01-07 15:44:42 +01:00
LibPCIDB LibCore+AK: Move MappedFile from AK to LibCore 2021-11-23 11:33:36 +01:00
LibPDF LibPDF: Convert PDF::Parser::m_document from RefPtr to WeakPtr 2022-01-08 18:57:55 +01:00
LibProtocol RequestServer+LibProtocol: Add an 'EnsureConnection' IPC endpoint 2021-09-28 22:32:31 +02:00
LibPthread AK+LibC+LibPthread: Introduce NoAllocationGuard 2022-01-11 00:08:58 +01:00
LibRegex LibRegex: Make FailForks fail all forks up to the last save point 2021-12-25 18:41:10 +01:00
LibSanitizer LibSanitizer: Log UBSAN errors in red text to the debug console 2021-12-15 10:30:32 -08:00
LibSoftGPU LibGL+LibSoftGPU: Implement viewport support 2022-01-09 20:22:32 +01:00
LibSQL LibSQL: Implement LIKE SQL expressions 2022-01-07 10:50:39 +03:30
LibSymbolication LibCore+AK: Move MappedFile from AK to LibCore 2021-11-23 11:33:36 +01:00
LibSyntax LibWeb: Implement first draft of CSS syntax highlighting :^) 2021-10-23 19:07:44 +02:00
LibSystem LibCore+LibSystem: Move syscall wrappers from LibSystem to LibCore 2021-11-23 11:33:36 +01:00
LibTest LibJS: Convert Interpreter::run() to ThrowCompletionOr<Value> 2022-01-08 23:43:03 +01:00
LibTextCodec LibTextCodec: Add alternate Cyrillic (aka Koi8-r) encoding 2021-12-16 22:44:45 +01:00
LibThreading LibThreading: Remove redundant method 2021-11-02 11:07:26 +01:00
LibTimeZone LibTimeZone: Parse ZONE entries from the TZDB and generate their names 2022-01-08 12:45:34 +01:00
LibTLS LibTLS: Mark the socket as idle after a TLS-level disconnection 2022-01-08 13:41:31 +03:30
LibUnicode LibUnicode: Add an hour-cycle field to DateTimeFormat's format pattern 2022-01-10 16:18:05 +01:00
LibUSBDB LibCore+AK: Move MappedFile from AK to LibCore 2021-11-23 11:33:36 +01:00
LibVideo LibVideo/VP9: Do not null guard calls to free 2022-01-01 17:30:25 +00:00
LibVT Kernel+LibVT: Use MUST + try_prepend / try_append 2022-01-05 14:04:18 +01:00
LibWasm Everywhere: Fix many spelling errors 2022-01-07 10:56:59 +01:00
LibWeb LibJS: Convert Interpreter::run() to ThrowCompletionOr<Value> 2022-01-08 23:43:03 +01:00
LibWebSocket Userland: Resolve tautological-constant-out-of-range-compare warnings 2022-01-04 07:51:31 +00:00
LibX86 Everywhere: Fix spelling mistakes 2022-01-07 15:44:42 +01:00
CMakeLists.txt LibTimeZone+Meta: Add plumbing for an IANA Time Zone Database generator 2022-01-08 12:45:34 +01:00