ladybird/AK
Andreas Kling 40552bb5fb AK: Add BitmapView class (like StringView but for bitmaps)
AK::Bitmap is an awkwardly modal class which can either own or wrap
the underlying data. To get ourselves out of this unpleasant situation,
this patch adds BitmapView to replace the wrapped mode.

A BitmapView is simply a { data pointer, bit count } tuple internally
and provides all the convenient functionality of a bitmap class.
2021-03-04 11:25:45 +01:00
..
Tests AK: Make Time more usable 2021-03-02 08:36:08 +01:00
AllOf.h AK: Publish all_of() 2021-02-17 15:22:21 +01:00
AnyOf.h AK: Publish AK::any_of by default 2021-02-07 11:35:08 +01:00
Array.h AK: Always do bounds checking in Array::operator[] 2021-02-27 09:23:32 +01:00
Assertions.h Everywhere: Remove unused RELEASE_ASSERT macro 2021-02-23 21:11:53 +01:00
Atomic.h Kernel: Add safe atomic functions 2021-01-17 20:30:31 +01:00
Badge.h Badge: Access to underlying type 2021-01-15 09:44:21 +01:00
Base64.cpp Everywhere: Remove unnecessary clang-format offs 2021-03-04 11:01:48 +01:00
Base64.h Everywhere: Remove unnecessary headers 3/4 2021-02-08 18:03:57 +01:00
BinarySearch.h Everywhere: Remove unnecessary headers 3/4 2021-02-08 18:03:57 +01:00
Bitmap.h AK: Add Bitmap::is_null() 2021-03-04 10:11:37 +01:00
BitmapView.h AK: Add BitmapView class (like StringView but for bitmaps) 2021-03-04 11:25:45 +01:00
BitStream.h AK: Lower the requirements for InputStream::eof and rename it. 2020-09-14 20:58:12 +02:00
Buffered.h AK: Cleanup missing includes and #ifdef evaluation 2020-11-22 11:35:53 +01:00
ByteBuffer.cpp AK: Alter ByteBuffer to utilise memcmp. 2021-02-21 16:34:51 +01:00
ByteBuffer.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Checked.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
CheckedFormatString.h AK: Rename {DBGLN_NO => ENABLE}_COMPILETIME_FORMAT_CHECK 2021-02-24 13:07:57 +01:00
CircularDeque.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
CircularDuplexStream.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
CircularQueue.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
CMakeLists.txt Meta: Build AK and LibRegex tests in Lagom and for Serenity 2021-02-28 18:19:37 +01:00
Concepts.h AK: Pull Is{Integral,FloatingPoint} into the global namespace 2020-12-05 23:52:17 +01:00
Debug.h.in HackStudio/LanguageServers: Move some components out of Cpp 2021-03-04 11:21:43 +01:00
Demangle.h Revert "AK: Don't demangle in serenity :(" 2020-05-20 16:24:26 +02:00
DistinctNumeric.h Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
DoublyLinkedList.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Endian.h AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
FileStream.h Everywhere: Remove unnecessary headers 4/4 2021-02-08 18:03:57 +01:00
Find.h AK: Find a value in any container offering iterators 2021-01-11 19:45:05 +01:00
FlyString.cpp Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
FlyString.h AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
Format.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Format.h AK: Make dbgln_if() avoid evaluating the arguments when disabled 2021-02-24 13:07:28 +01:00
Forward.h Kernel: Prevent using copy_from_user() for timespec/timeval 2021-03-02 08:36:08 +01:00
Function.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
GenericLexer.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
GenericLexer.h AK: Add GenericLexer::retreat() 2020-10-29 11:52:31 +01:00
HashFunctions.h Everywhere: Fix weird includes 2021-02-08 18:03:57 +01:00
HashMap.h Everywhere: Remove unnecessary headers 4/4 2021-02-08 18:03:57 +01:00
HashTable.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Hex.cpp AK: Use StringBuilder::appendff() instead of appendf() 2021-02-09 19:18:13 +01:00
Hex.h Everywhere: Remove unnecessary headers 3/4 2021-02-08 18:03:57 +01:00
IDAllocator.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
InlineLinkedList.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
IntrusiveList.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
IPv4Address.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
IterationDecision.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
Iterator.h AK: Make single pivot quick_sort guarantee a max stack depth of log(n) 2021-02-01 09:52:36 +01:00
JsonArray.h AK: Add JsonArray(const Vector<T>) constructor 2021-01-15 23:26:47 +01:00
JsonArraySerializer.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
JsonObject.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
JsonObjectSerializer.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
JsonParser.cpp Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
JsonParser.h AK: Remove empty destructor from JsonParser. 2020-09-08 14:01:21 +02:00
JsonPath.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
JsonPath.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
JsonValue.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
JsonValue.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
kmalloc.h AK: Always include <new> from compiler before our operators new 2020-11-05 09:59:30 +01:00
kstdio.h AK: Remove unused kprintf macro 2021-02-20 17:21:03 +01:00
LexicalPath.cpp AK: Add LexicalPath::relative_path 2021-02-20 15:53:37 +01:00
LexicalPath.h AK: Add LexicalPath::relative_path 2021-02-20 15:53:37 +01:00
LogStream.cpp AK: Use StringBuilder::appendff() instead of appendf() 2021-02-09 19:18:13 +01:00
LogStream.h Everywhere: Deprecate dbg(). 2021-01-23 16:46:26 +01:00
MACAddress.h Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
MappedFile.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
MappedFile.h LibC+Everywhere: Remove open_with_path_length() in favor of open() 2021-01-12 23:34:01 +01:00
MemMem.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Memory.h AK+LibC: Always use REP MOVSB/STOSB for memcpy()/memset() 2020-07-27 15:54:39 +02:00
MemoryStream.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
NeverDestroyed.h NeverDestroyed: Add tests 2020-11-22 10:54:33 +01:00
Noncopyable.h Meta: Force semi-colon after MAKE_AK_NONXXXABLE() 2020-08-27 10:12:04 +02:00
NonnullOwnPtr.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
NonnullOwnPtrVector.h AK: Make Nonnull*PtrVector use size_t for indexes 2021-02-20 18:34:32 +01:00
NonnullPtrVector.h AK: Make Nonnull*PtrVector use size_t for indexes 2021-02-20 18:34:32 +01:00
NonnullRefPtr.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
NonnullRefPtrVector.h AK: Make Nonnull*PtrVector use size_t for indexes 2021-02-20 18:34:32 +01:00
NumberFormat.h Everywhere: Remove unnecessary headers 3/4 2021-02-08 18:03:57 +01:00
NumericLimits.h AK: Add NumericLimits specialization for char. 2020-09-29 16:14:58 +02:00
Optional.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
OSError.h AK: Add AK::OSError, a wrapper for errno codes 2021-01-10 16:46:13 +01:00
OwnPtr.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Platform.h AK+Kernel: Remove NO_DISCARD macro hack 2021-03-03 23:08:42 +01:00
PrintfImplementation.h AK: Clean up includes around printf/vdbgprintf 2021-02-08 18:03:57 +01:00
Queue.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
QuickSort.h AK: Make single pivot quick_sort guarantee a max stack depth of log(n) 2021-02-01 09:52:36 +01:00
Random.h Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
RefCounted.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
RefPtr.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Result.h AK: Add release_value() and release_error() to AK::Result 2021-01-09 19:57:50 +01:00
ScopedValueRollback.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
ScopeGuard.h Meta+AK: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
ScopeLogger.h LibCpp: Add the beginning of a C++ parser 2021-01-27 21:10:57 +01:00
SIMD.h AK: Add header for SIMD vectorized types 2020-12-08 09:39:43 +01:00
Singleton.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
SinglyLinkedList.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
SinglyLinkedListWithCount.h Everywhere: Remove unnecessary headers 4/4 2021-02-08 18:03:57 +01:00
SourceGenerator.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Span.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
StackInfo.cpp AK: Fix OOO mistake in StackInfo.cpp 2021-03-03 11:09:44 +01:00
StackInfo.h LibJS+AK: Move cross-platform stack bounds code from JS::Heap to AK::StackInfo 2020-11-08 16:51:54 +01:00
StdLibExtras.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Stream.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
String.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
String.h Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
StringBuilder.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
StringBuilder.h AK+Kernel+Userland: Enable some more compiletime format string checks 2021-02-23 13:59:33 +01:00
StringImpl.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
StringImpl.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
StringUtils.cpp Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
StringUtils.h AK: Add String{,Utils}::to_snakecase() 2021-02-21 19:47:47 +01:00
StringView.cpp Everywhere: Remove a bunch of redundant 'AK::' namespace prefixes 2021-02-26 16:59:56 +01:00
StringView.h AK: Don't compare past '\0' in StringView::operator==(const char*) 2021-02-24 22:13:04 +01:00
TemporaryChange.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
TestSuite.h AK+LibM: Rename EXPECT_CLOSE to EXPECT_APPROXIMATE 2021-03-03 20:19:24 +01:00
Time.cpp AK: Make Time more usable 2021-03-02 08:36:08 +01:00
Time.h AK: Make Time more usable 2021-03-02 08:36:08 +01:00
Traits.h AK: Find a value in any container offering iterators 2021-01-11 19:45:05 +01:00
Trie.h AK: Replace some SFINAE with requires clauses, clean up existing ones 2020-12-30 13:28:49 +01:00
TypeCasts.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
TypedTransfer.h AK: remove unused and uninteresting return value 2021-02-08 18:03:57 +01:00
TypeList.h AK: Add missing 'template' keywords in TypeList 2020-12-31 16:16:07 +01:00
Types.h AK: Add default memory order as template argument for Atomic<T> 2021-01-04 19:13:52 +01:00
URL.cpp AK::URL: Fix setting the port number in the case it was the last element of the URL 2020-12-12 20:09:42 +01:00
URL.h AK: Add URL::to_string_encoded() 2021-01-31 19:05:55 +01:00
URLParser.cpp AK: Add optional parameter for excluding chars to urlencode() 2021-01-31 19:05:55 +01:00
URLParser.h AK: Add optional parameter for excluding chars to urlencode() 2021-01-31 19:05:55 +01:00
Userspace.h AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
Utf8View.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Utf8View.h AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
Utf32View.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
UUID.cpp Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
UUID.h AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
Vector.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
Weakable.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00
WeakPtr.h Everywhere: Rename ASSERT => VERIFY 2021-02-23 20:56:54 +01:00