ladybird/AK
Matthew Olsson 76fa127cbf LibJSGCVerifier: Detect stack-allocated ref captures in lambdas
For example, consider the following code snippet:

    Vector<Function<void()>> m_callbacks;
    void add_callback(Function<void()> callback)
    {
    	m_callbacks.append(move(callback));
    }

    // Somewhere else...
    void do_something()
    {
    	int a = 10;
    	add_callback([&a] {
            dbgln("a is {}", a);
    	});
    } // Oops, "a" is now destroyed, but the callback in m_callbacks
      // has a reference to it!

We now statically detect the capture of "a" in the lambda above and flag
it as incorrect. Note that capturing the value implicitly with a capture
list of `[&]` would also be detected.

Of course, many functions that accept Function<...> don't store them
anywhere, instead immediately invoking them inside of the function. To
avoid a warning in this case, the parameter can be annotated with
NOESCAPE to indicate that capturing stack variables is fine:

    void do_something_now(NOESCAPE Function<...> callback)
    {
    	callback(...)
    }

Lastly, there are situations where the callback does generally escape,
but where the caller knows that it won't escape long enough to cause any
issues. For example, consider this fake example from LibWeb:

    void do_something()
    {
    	bool is_done = false;
    	HTML::queue_global_task([&] {
            do_some_work();
            is_done = true;
        });
    	HTML::main_thread_event_loop().spin_until([&] {
            return is_done;
        });
    }

In this case, we know that the lambda passed to queue_global_task will
be executed before the function returns, and will not persist
afterwards. To avoid this warning, annotate the type of the capture
with IGNORE_USE_IN_ESCAPING_LAMBDA:

    void do_something()
    {
   	IGNORE_USE_IN_ESCAPING_LAMBDA bool is_done = false;
    	// ...
    }
2024-04-09 09:10:44 +02:00
..
.clang-tidy Meta: Add basic clang-tidy configuration 2021-11-14 22:52:35 +01:00
AllOf.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
AnyOf.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
ArbitrarySizedEnum.h AK: Patch ArbitrarySizedEnum operators for missing constructor 2023-01-18 22:58:42 +01:00
Array.h AK: Add to_array() 2024-02-11 18:53:00 +01:00
Assertions.cpp AK: Disable assertion output colors on windows 2023-10-29 07:40:35 +01:00
Assertions.h Everywhere: Prefer VERIFY over assert() 2024-02-05 07:03:53 -05:00
Atomic.h AK: Fix volatile qualifier in Atomic<T*>::ptr() 2023-08-18 16:20:13 +02:00
AtomicRefCounted.h Everywhere: Remove unused includes of AK/StdLibExtras.h 2023-01-02 20:27:20 -05:00
Badge.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
Base64.cpp AK: Reject invalid Base64 encoded string lengths 2024-03-25 08:13:27 +01:00
Base64.h AK: Add base64url encoding and decoding methods 2024-03-20 12:18:57 -04:00
BigIntBase.h AK: Move generalized internals of UFixedBigIntDivision to BigIntBase 2024-03-25 14:26:29 -06:00
BinaryBufferWriter.h Everywhere: Remove unnecessary AK and Detail namespace scoping 2022-12-09 11:25:30 +00:00
BinaryHeap.h AK: Introduce IntrusiveBinaryHeap and reimplement BinaryHeap using it 2024-02-25 17:24:36 -07:00
BinarySearch.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
BitCast.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
Bitmap.h AK: Replace C-style casts 2023-03-09 21:43:54 +01:00
BitmapView.h AK: Fix one-off error in BitmapView::find_first and find_one_anywhere 2023-10-11 15:58:16 +02:00
BitStream.h AK: Add BigEndianInputBitStream::bits_until_next_byte_boundary() 2024-02-12 14:08:56 +01:00
BufferedStream.h AK: Allow reading from EOF buffered streams better in read_line() 2024-02-26 13:16:27 -07:00
BuiltinWrappers.h AK: Fix doc comment for bit_scan_forward 2023-10-11 14:36:48 -04:00
BumpAllocator.h AK: Replace C-style casts 2023-03-09 21:43:54 +01:00
ByteBuffer.h AK: Add XOR method to ByteBuffer 2024-04-08 09:34:49 -06:00
ByteReader.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
ByteString.cpp AK: Disallow calling ByteString methods that return a view on rvalues 2024-04-04 11:23:21 +02:00
ByteString.h AK: Disallow calling ByteString methods that return a view on rvalues 2024-04-04 11:23:21 +02:00
CharacterTypes.h AK: Add is_ascii_uppercase_hex_digit() 2024-03-01 14:17:42 +01:00
Checked.h AK: Use fallback builtins for overflow checks in AK::Checked 2023-12-21 15:31:32 +01:00
CheckedFormatString.h AK: Bake CLion IDE check into AK_COMPILER_CLANG 2023-04-08 13:43:25 +02:00
CircularBuffer.cpp AK: Use hashing to accelerate searching a CircularBuffer 2023-07-06 15:06:20 +01:00
CircularBuffer.h AK: Use hashing to accelerate searching a CircularBuffer 2023-07-06 15:06:20 +01:00
CircularDeque.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
CircularQueue.h AK: Remove CircularDuplexStream 2023-01-14 12:05:52 -05:00
CMakeLists.txt AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
Complex.h AK: Cover TestComplex with more tests 2024-01-12 16:42:51 -07:00
Concepts.h AK: Add a CallableAs<R, Args...> concept 2023-07-08 23:13:00 +01:00
ConstrainedStream.cpp AK: Move ConstrainedStream from LibWasm and limit discarding 2023-03-21 10:25:13 +01:00
ConstrainedStream.h AK: Move ConstrainedStream from LibWasm and limit discarding 2023-03-21 10:25:13 +01:00
CountingStream.cpp AK: Add a Stream wrapper that counts read bytes 2023-03-21 10:25:13 +01:00
CountingStream.h AK: Add a Stream wrapper that counts read bytes 2023-03-21 10:25:13 +01:00
COWVector.h AK+LibRegex+LibWasm: Remove the non-const COWVector::operator[] 2024-03-12 17:10:47 +01:00
DateConstants.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
Debug.h.in LibGfx: Add the start of a JPEG2000 loader 2024-03-25 20:35:00 +01:00
DefaultDelete.h AK+Everywhere: Move custom deleter capability to OwnPtr 2022-12-17 16:00:08 -05:00
Demangle.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
DeprecatedFlyString.cpp AK+LibJS: Remove null state from DeprecatedFlyString :^) 2024-02-24 15:06:52 -07:00
DeprecatedFlyString.h AK+LibJS: Remove null state from DeprecatedFlyString :^) 2024-02-24 15:06:52 -07:00
Diagnostics.h AK: Add a helper macro to temporarily ignore diagnostics with _Pragma() 2022-12-06 21:31:00 +00:00
DisjointChunks.h AK: Rename GenericTraits to DefaultTraits 2023-11-09 10:05:51 -05:00
DistinctNumeric.h AK: Rename GenericTraits to DefaultTraits 2023-11-09 10:05:51 -05:00
DOSPackedTime.cpp Kernel: Use UnixDateTime wherever applicable 2023-05-24 23:18:07 +02:00
DOSPackedTime.h Kernel: Use UnixDateTime wherever applicable 2023-05-24 23:18:07 +02:00
DoublyLinkedList.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
Endian.h ntpquery: Use AK::convert_between_host_and_network_endian 2024-02-06 04:37:47 -07:00
EnumBits.h Everywhere: Remove unused includes of AK/StdLibExtras.h 2023-01-02 20:27:20 -05:00
Enumerate.h AK: Introduce AK::enumerate 2024-03-23 09:02:58 -04:00
Error.cpp AK: Add a new method to propagate errno while printing errors in Kernel 2023-02-10 09:14:20 +00:00
Error.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Find.h AK: Use Iterator's trait when comparing a value 2023-08-23 20:21:09 +02:00
FixedArray.h AK: Make FixedArray movable 2023-07-21 10:47:34 -06:00
FixedPoint.h AK: Make FixedPoint work on platforms without __int128 2023-09-06 07:17:03 -06:00
FixedStringBuffer.h AK+Kernel: Introduce StdLib function to copy FixedStringBuffer to user 2023-08-25 11:51:52 +02:00
FloatingPoint.h AK: Make IndexSequence use size_t 2024-02-11 18:53:00 +01:00
FloatingPointStringConversions.cpp AK: Make BigIntBase more agnostic to non native word sizes 2024-03-25 14:26:29 -06:00
FloatingPointStringConversions.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
FlyString.cpp AK: Make FlyString::from_utf8*() avoid allocation if possible 2024-03-24 13:28:24 +01:00
FlyString.h AK: Simplify and optimize ASCIICaseInsensitiveFlyStringTraits::equals 2024-04-06 09:17:51 -04:00
Format.cpp AK: Make the :hex-dump format specifier print all characters 2024-01-21 21:13:58 +01:00
Format.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Forward.h AK+LibURL: Move AK::URL into a new URL library 2024-03-18 14:06:28 -04:00
FPControl.h AK: Ensure unions with bitfield structs actually have correct sizes 2023-11-01 09:10:38 +03:30
Function.h LibJSGCVerifier: Detect stack-allocated ref captures in lambdas 2024-04-09 09:10:44 +02:00
FuzzyMatch.cpp AK/FuzzyMatch: Check every match for neighbor character bonuses 2023-10-06 22:09:18 +02:00
FuzzyMatch.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
GenericLexer.cpp AK+LibXML+JSSpecCompiler: Move LineTrackingLexer to AK 2024-02-16 15:26:43 +01:00
GenericLexer.h AK+LibXML+JSSpecCompiler: Move LineTrackingLexer to AK 2024-02-16 15:26:43 +01:00
GenericShorthands.h AK: Mark generic shorthand functions as constexpr 2023-06-01 06:25:00 +02:00
HashFunctions.h AK: Remove unused rehash_for_collision 2023-02-17 22:29:51 -07:00
HashMap.h AK: Early return from empty hash table lookups to avoid hashing 2024-03-16 14:27:59 +01:00
HashTable.h AK: Early return from empty hash table lookups to avoid hashing 2024-03-16 14:27:59 +01:00
Hex.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Hex.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
IDAllocator.h AK: Allow specifying a minimum value for IDs returned by IDAllocator 2023-04-07 16:02:22 +02:00
InsertionSort.h AK: Introduce cutoff to insertion sort for Quicksort 2022-12-12 15:03:57 +00:00
IntegralMath.h AK: Use correct type when calculating integral exp2() 2023-10-27 21:59:44 -04:00
IntrusiveDetails.h Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
IntrusiveList.h AK: Accomodate always-32-bit data member pointers in IntrusiveList 2023-05-02 17:46:39 +03:30
IntrusiveListRelaxedConst.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
IntrusiveRedBlackTree.h Everywhere: Remove unnecessary AK and Detail namespace scoping 2022-12-09 11:25:30 +00:00
IPv4Address.h Everywhere: Use to_number<T> instead of to_{int,uint,float,double} 2023-12-23 20:41:07 +01:00
IPv6Address.h AK: Rename GenericTraits to DefaultTraits 2023-11-09 10:05:51 -05:00
IterationDecision.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
Iterator.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
JsonArray.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
JsonArraySerializer.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
JsonObject.cpp AK+Everywhere: Remove JsonValue APIs with implicit default values 2024-01-21 15:47:53 -07:00
JsonObject.h AK: Store JsonValue's value in AK::Variant 2024-02-08 08:04:05 -07:00
JsonObjectSerializer.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
JsonParser.cpp AK: Remove ByteString from GenericLexer 2024-01-12 17:03:53 -07:00
JsonParser.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
JsonPath.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
JsonPath.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
JsonValue.cpp AK: Store JsonValue's value in AK::Variant 2024-02-08 08:04:05 -07:00
JsonValue.h AK: Return a constant reference from JsonValue::as_string 2024-04-04 11:23:21 +02:00
kmalloc.cpp AK: Provide a fallback definition for std::nothrow 2023-01-29 19:16:44 -07:00
kmalloc.h AK: Fully qualify some usages of AK features outside of the AK namespace 2022-11-27 23:54:40 +01:00
kstdio.h Everywhere: Replace uses of __serenity__ with AK_OS_SERENITY 2022-10-10 12:23:12 +02:00
LEB128.h Everywhere: Remove the AK:: qualifier from Stream usages 2023-02-13 00:50:07 +00:00
LexicalPath.cpp Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
LexicalPath.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
MACAddress.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Math.h AK: Remove rsqrt() 2024-01-30 10:02:33 +01:00
MaybeOwned.h AK: Allow creating a MaybeOwned<Superclass> from a MaybeOwned<Subclass> 2024-03-25 20:35:00 +01:00
MemMem.h Everywhere: Use ReadonlySpan<T> instead of Span<T const> 2023-02-08 19:15:45 +00:00
Memory.h Everywhere: Move global Kernel pattern code to Kernel/Library directory 2023-06-04 21:32:34 +02:00
MemoryStream.cpp AK: Use an enum to specify the open mode instead of a bool 2023-11-08 18:19:34 +01:00
MemoryStream.h AK: Use an enum to specify the open mode instead of a bool 2023-11-08 18:19:34 +01:00
NeverDestroyed.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
NoAllocationGuard.h AK: Restrict include of LibC header 2023-01-07 10:01:37 -07:00
Noncopyable.h AK: Add AK_MAKE_DEFAULT_COPYABLE 2024-01-21 16:16:15 -07:00
NonnullOwnPtr.h AK: Rename GenericTraits to DefaultTraits 2023-11-09 10:05:51 -05:00
NonnullRefPtr.h AK: Rename GenericTraits to DefaultTraits 2023-11-09 10:05:51 -05:00
NumberFormat.cpp AK+Userland: Return String from human_readable_size() functions 2024-01-25 09:07:32 +01:00
NumberFormat.h AK+Userland: Return String from human_readable_size() functions 2024-01-25 09:07:32 +01:00
NumericLimits.h AK+LibJS: Make Number.MIN_VALUE a denormal 2023-07-02 21:19:09 +01:00
Optional.h AK+LibJS: Remove OFFSET_OF and its users 2024-02-29 09:00:00 +01:00
OptionParser.cpp AK: Update OptionParser::m_arg_index by substracting skipped args 2024-02-06 00:08:30 +01:00
OptionParser.h Userland+AK: Stop using getopt() for ArgsParser 2023-02-28 15:52:24 +03:30
OwnPtr.h AK: Rename GenericTraits to DefaultTraits 2023-11-09 10:05:51 -05:00
Platform.h LibJS+AK: Register GC memory as root regions for LeakSanitizer 2024-04-03 12:41:02 +02:00
PrintfImplementation.h AK: Implement printf's "period without precision value" correctly 2023-10-06 08:21:18 +02:00
Ptr32.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
Queue.h AK: Add Queue::tail() 2023-03-14 16:52:44 +01:00
QuickSelect.h AK: Add thresholds to quickselect_inline and Statistics::Median 2023-02-03 19:04:15 +01:00
QuickSort.h AK: Change quicksort comments to standard // style 2022-12-12 15:03:57 +00:00
Random.cpp LibTest: Add more numeric generators 2024-01-12 16:42:51 -07:00
Random.h LibTest: Add more numeric generators 2024-01-12 16:42:51 -07:00
RecursionDecision.h AK: Add missing include in RecursionDecision.h 2023-08-18 08:58:51 +03:30
RedBlackTree.h Everywhere: Run spellcheck on all documentation 2023-05-07 01:05:09 +02:00
RefCounted.h Everywhere: Remove unused includes of AK/StdLibExtras.h 2023-01-02 20:27:20 -05:00
RefCountForwarder.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
RefPtr.h AK: Rename GenericTraits to DefaultTraits 2023-11-09 10:05:51 -05:00
Result.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
ReverseIterator.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
ScopedValueRollback.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
ScopeGuard.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
ScopeLogger.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
SegmentedVector.h AK+LibWeb: Use segmented vector to store commands in RecordingPainter 2023-12-30 23:02:46 +01:00
SIMD.h AK: Add char SIMD types 2021-07-22 23:33:21 +02:00
SIMDExtras.h LibWasm: Implement a few SIMD instructions 2023-08-21 13:39:32 +03:30
SIMDMath.h AK: Remove the SIMD version of rsqrt() too, for good measure 2024-01-30 10:02:33 +01:00
Singleton.h Everywhere: Move global Kernel pattern code to Kernel/Library directory 2023-06-04 21:32:34 +02:00
SinglyLinkedList.h AK+Kernel: Unify Traits<T>::equals()'s argument order on different types 2023-08-23 20:21:09 +02:00
SinglyLinkedListSizePolicy.h AK: Combine SinglyLinkedList and SinglyLinkedListWithCount 2023-01-02 20:13:24 +00:00
SipHash.cpp AK: Make SipHash not depend on size_t bit length 2023-10-27 05:57:18 +03:30
SipHash.h AK: Implement SipHash as the default hash algorithm for most use cases 2023-10-01 11:06:36 +03:30
Slugify.cpp AK: Implement slugify function for URL slug generation 2023-10-30 10:39:59 +00:00
Slugify.h AK: Implement slugify function for URL slug generation 2023-10-30 10:39:59 +00:00
SourceGenerator.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
SourceLocation.h AK: Add copy assignment operator for SourceLocation 2023-09-24 14:55:32 +02:00
Span.h AK: Generalize Span::contains_slow to use the Traits infrastructure 2024-03-16 08:42:33 +01:00
Stack.h Everywhere: Run clang-format 2022-12-03 23:52:23 +00:00
StackInfo.cpp AK+Lagom: Make it possible to build for iOS 2024-03-03 13:13:42 -07:00
StackInfo.h AK: Use __builtin_frame_address to find current stack depth remaining 2023-07-01 07:03:11 +02:00
Statistics.h AK: Allow Statistics to be used with any container type 2023-08-16 01:10:35 +02:00
StdLibExtraDetails.h LibCrypto: Add a minimal DER encoder 2024-03-16 01:17:02 -06:00
StdLibExtras.h AK+LibJS: Remove OFFSET_OF and its users 2024-02-29 09:00:00 +01:00
Stream.cpp AK: Rename Stream::format() to Stream::write_formatted() 2023-04-25 07:30:16 +01:00
Stream.h AK: Add a Stream::write_until_depleted overload for string types 2024-04-04 11:23:21 +02:00
String.cpp AK: Disallow calling String methods that return a view on rvalues 2024-04-04 11:23:21 +02:00
String.h AK: Disallow calling String methods that return a view on rvalues 2024-04-04 11:23:21 +02:00
StringBase.cpp AK: Remove excessive hashing caused by FlyString table 2024-03-24 13:28:24 +01:00
StringBase.h AK: Remove excessive hashing caused by FlyString table 2024-03-24 13:28:24 +01:00
StringBuilder.cpp LibWeb: Skip some redundant UTF-8 validation in CSS tokenizer 2024-03-24 13:28:24 +01:00
StringBuilder.h LibWeb: Skip some redundant UTF-8 validation in CSS tokenizer 2024-03-24 13:28:24 +01:00
StringData.h AK: Remove excessive hashing caused by FlyString table 2024-03-24 13:28:24 +01:00
StringFloatingPointConversions.cpp AK+LibCrypto: Delete 64x64 wide multiplication workarounds 2023-03-04 22:10:03 -07:00
StringFloatingPointConversions.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
StringHash.h AK: Implement SipHash as the default hash algorithm for most use cases 2023-10-01 11:06:36 +03:30
StringImpl.cpp AK+Everywhere: Remove the null state of DeprecatedString 2023-10-13 18:33:21 +03:30
StringImpl.h AK: Make Deprecated{Fly,}String and StringImpl const-correct 2023-02-21 00:54:04 +01:00
StringUtils.cpp AK: Improve performance of StringUtils::find_last 2024-01-04 11:28:03 -05:00
StringUtils.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
StringView.cpp AK: Add a StringView method to count the number of lines in a string 2024-03-08 14:43:33 -05:00
StringView.h AK: Add a StringView method to count the number of lines in a string 2024-03-08 14:43:33 -05:00
TemporaryChange.h AK: Make it possible to not using AK classes into the global namespace 2022-11-26 15:51:34 +01:00
Time.cpp AK: Remove Duration::now_monotonic 2023-05-24 23:18:07 +02:00
Time.h AK: Define compound subtraction operator for UnixDateTime 2023-11-08 09:28:17 +01:00
Traits.h AK: Don't blindly use SipHash as default hash function 2024-03-25 12:39:23 +01:00
Trie.h AK: Allow customising Trie's underlying map type 2023-07-31 05:31:33 +02:00
Try.h AK+Everywhere: Do not implicitly copy variables in TRY macros 2023-02-10 09:08:52 +00:00
Tuple.h AK: Make IndexSequence use size_t 2024-02-11 18:53:00 +01:00
TypeCasts.h Everywhere: Remove unused includes of AK/StdLibExtras.h 2023-01-02 20:27:20 -05:00
TypedTransfer.h Everywhere: Stop shoving things into ::std and mentioning them as such 2022-12-14 11:44:32 +01:00
TypeList.h AK: Make IndexSequence use size_t 2024-02-11 18:53:00 +01:00
Types.h AK: Use else if constexpr in explode_byte() 2024-03-21 14:35:20 -06:00
UBSanitizer.h Everywhere: Fix badly-formatted includes 2023-01-02 11:06:15 -05:00
UFixedBigInt.h AK: Make BigIntBase more agnostic to non native word sizes 2024-03-25 14:26:29 -06:00
UFixedBigIntDivision.h AK: Move generalized internals of UFixedBigIntDivision to BigIntBase 2024-03-25 14:26:29 -06:00
UnicodeUtils.h AK: Stop using ShortString in String::from_code_point 2024-01-21 16:16:15 -07:00
Userspace.h Kernel: Move {Virtual,Physical}Address classes to the Memory directory 2023-06-04 21:32:34 +02:00
Utf8View.cpp AK: Add ASCII fast path to Utf8CodePointIterator 2023-12-30 13:49:50 +01:00
Utf8View.h Everywhere: Rename {Deprecated => Byte}String 2023-12-17 18:25:10 +03:30
Utf16View.cpp AK: Add a Utf16View::starts_with method 2024-01-04 12:43:10 +01:00
Utf16View.h AK: Add a Utf16View::starts_with method 2024-01-04 12:43:10 +01:00
Utf32View.cpp AK: Prepare Utf32View for use within templated LibGfx contexts 2023-02-22 10:14:36 +01:00
Utf32View.h AK: Add a Utf32View::substring_view overload to take only an offset 2023-03-08 18:57:53 +00:00
UUID.cpp AK+Userland: Remove some needlessly explicit conversions to StringView 2024-04-04 11:23:21 +02:00
UUID.h Everywhere: Move global Kernel pattern code to Kernel/Library directory 2023-06-04 21:32:34 +02:00
Variant.h AK: Make IndexSequence use size_t 2024-02-11 18:53:00 +01:00
Vector.h AK+LibJS: Remove OFFSET_OF and its users 2024-02-29 09:00:00 +01:00
Weakable.h AK+LibJS: Remove OFFSET_OF and its users 2024-02-29 09:00:00 +01:00
WeakPtr.h AK: Make WeakPtr<T>::value() return NonnullRefPtr<T> 2023-02-05 15:38:19 +01:00