summaryrefslogtreecommitdiff
path: root/AK
AgeCommit message (Collapse)Author
2023-03-22AK: Expose the current position of a Utf8CodePointIterator as a pointerSam Atkins
2023-03-21AK: Expose the seekback limit of CircularBufferTim Schumacher
2023-03-21AK: Add a Stream wrapper that counts read bytesTim Schumacher
2023-03-21AK: Move ConstrainedStream from LibWasm and limit discardingTim Schumacher
2023-03-18AK: Export FlyString from the forwarding headerTimothy Flynn
2023-03-17LibGfx/OpenType: Add some initial support for GPOS glyph positioningAndreas Kling
This patch parses enough of GPOS tables to be able to support the kerning information embedded in Inter. Since that specific font only applies positioning offsets to the first glyph in each pair, I was able to get away with not changing our API. Once we start adding support for more sophisticated positioning, we'll need to be able to communicate more than a simple "kerning offset" to the clients of this code.
2023-03-15AK: Clear OrderedHashTable previous/next pointers on removalJelle Raaijmakers
With Clang, the previous/next pointers in buckets of an `OrderedHashTable` are not cleared when a bucket is being shifted up as a result of a removed bucket. As a result, an unfortunate pointer mixup could lead to an infinite loop in the `HashTable` iterator, which was exposed in `HashMap::keys()`. Co-authored-by: Luke Wilde <lukew@serenityos.org>
2023-03-14AK: Rename CaseInsensitiveStringViewTraits to reflect intentgustrb
Now it is called `CaseInsensitiveASCIIStringViewTraits`, so we can be more specific about what data structure does it operate onto. ;)
2023-03-14AK: Add Queue::tail()Andreas Kling
We already had head(), so let's also have tail().
2023-03-13AK: Read and write accumulated BitStream bits directlyTim Schumacher
2023-03-13AK: Remove unneeded overrides for `write_until_depleted` from BitStreamTim Schumacher
2023-03-13AK: Rename Stream::write_entire_buffer to Stream::write_until_depletedTim Schumacher
No functional changes.
2023-03-13AK: Rename Stream::read_entire_buffer to Stream::read_until_filledTim Schumacher
No functional changes.
2023-03-13AK: Rename Stream::{read,write} to Stream::{read_some,write_some}Tim Schumacher
Similar to POSIX read, the basic read and write functions of AK::Stream do not have a lower limit of how much data they read or write (apart from "none at all"). Rename the functions to "read some [data]" and "write some [data]" (with "data" being omitted, since everything here is reading and writing data) to make them sufficiently distinct from the functions that ensure to use the entire buffer (which should be the go-to function for most usages). No functional changes, just a lot of new FIXMEs.
2023-03-13AK: Compute UTF-8 code point lengths using only leading bytesTimothy Flynn
We don't need to decode the entire code point to know its length. This reduces the runtime of decoding a string containing 5 million instances of U+10FFFF from over 4 seconds to 0.9 seconds.
2023-03-11AK: Add FlyString::from_deprecated_fly_string()Kenneth Myhra
Let's add FlyString::from_deprecated_fly_string() so we can use it instead of FlyString::from_utf8(). This will make it easier to detect potential unncessary allocations as we transfer to FlyString.
2023-03-11AK: Forward-declare LexicalPathSam Atkins
And alphabetically sort the list while I'm at it.
2023-03-10Everywhere: Rename equals_ignoring_case => equals_ignoring_ascii_caseAndreas Kling
Let's make it clear that these functions deal with ASCII case only.
2023-03-10AK: Add constexpr floor and roundkleines Filmröllchen
2023-03-09AK: Make FlyString::hash() use the cached hash in StringData if possibleAndreas Kling
This avoids rehashing the string every time.
2023-03-09AK: Replace C-style castsSam Atkins
2023-03-09AK: Remove infallible version of StringBuilder::to_byte_bufferLinus Groh
Also drop the try_ prefix from the fallible function, as it is no longer needed to distinguish the two.
2023-03-09AK: Introduce a fallible version of StringBuilder::to_byte_bufferKarol Baraniecki
Name it StringBuilder::try_to_byte_buffer accordingly :^)
2023-03-08AK+LibUnicode: Implement String::equals_ignoring_case without allocatingTimothy Flynn
We currently fully casefold the left- and right-hand sides to compare two strings with case-insensitivity. Now, we casefold one code point at a time, storing the result in a view for comparison, until we exhaust both strings.
2023-03-08AK: Add a Utf32View::substring_view overload to take only an offsetTimothy Flynn
This is for convenience, and matches our other UTF-N views.
2023-03-08AK: Make String::contains(code_point) handle non-ASCIITimothy Flynn
We currently only accept a char, instead of a full code point.
2023-03-08AK: Make String::{starts,ends}_with(code_point) handle non-ASCIITimothy Flynn
We currently pass the code point to StringView::{starts,ends}_with, which actually accepts a single char, thus cannot handle non-ASCII code points.
2023-03-08AK: Add FlyString::equals_ignoring_ascii_case()Andreas Kling
This is similar to equals_ignoring_case() but only cares about ASCII case insensitivity.
2023-03-06AK+Kernel: Remove all the Nonnull*PtrVector classesAndreas Kling
2023-03-06AK: Remove specialized shuffle for NonnullPtrVectorAndreas Kling
2023-03-05AK: Add FlyString::to_deprecated_fly_string()Kenneth Myhra
This adds the conversion function to_deprecated_fly_string() to enable conversion from new FlyString to DeprecatedFlyString.
2023-03-05AK+LibAudio: Remove UFixedBigInt::my_sizeDan Klishch
2023-03-04AK: Implement Knuth's algorithm D for dividing UFixedBigInt'sDan Klishch
2023-03-04AK: Delete unused and untested sqrt, pow and pow_mod from UFixedBigIntDan Klishch
2023-03-04AK+LibCrypto: Delete 64x64 wide multiplication workaroundsDan Klishch
Now UFixedBigInt exposes API to do wide multiplications of this kind efficiently.
2023-03-04AK: Rewrite UFixedBigInt using the framework from BigIntBase.hDan Klishch
2023-03-04AK: Introduce "BigIntBase.h" for common simple operations on big intsDan Klishch
2023-03-04AK: Move compiletime_fail to StdLibExtras.hDan Klishch
This function will be used in the next commit in "BigIntBase.h".
2023-03-04AK: Remove signbit definition to prevent conflict in FixedPointnipos
2023-03-04AK: Add support for Solaris to StackInfonipos
2023-03-04AK: Add Solaris to platform detectionnipos
2023-03-04AK: Add StackInfo implementation for WindowsAndrew Kaster
This prevents a warning when compiling jakt that it's not implemented.
2023-03-04LibCMake: Introduce a CMake lexerSam Atkins
2023-03-04AK: Format Debug.h.inSam Atkins
Indented #cmakedefine01 is supported since CMake 3.10: https://cmake.org/cmake/help/latest/release/3.10.html#commands We're on 3.16, and the minimum required for Serenity itself is 3.25, so this should be fine. And it makes CLion's auto-formatter much happier!
2023-03-03AK+readelf: Issue error when using ARCH(arch) with nonexistent archDan Klishch
This disallows erroneous `#if ARCH(x86_64)` (note lowercase x).
2023-03-03AK: Ensure short String instances are valid UTF-8Timothy Flynn
We are currently only validating long strings.
2023-03-03AK: Protect Utf8View against inclusion in the KernelTimothy Flynn
It will soon be included in the Kernel by way of String.h. Utf8View includes DeprecatedString, which is not allowed in the Kernel.
2023-03-03AK: Invalidate overlong UTF-8 code point encodingsTimothy Flynn
For example, the code point U+002F could be encoded as UTF-8 with the bytes 0x80 0xAF. This trick has historically been used to bypass security checks.
2023-03-03AK: Replace UTF-8 string validation with a constexpr implementationTimothy Flynn
This will allow validating UTF-8 strings at compile time, such as from String::from_utf8_short_string.
2023-03-03AK: Add String::ends_with{,_bytes}()Linus Groh