ladybird/Userland/Libraries/LibCore
Timothy Flynn 9b483625e6 LibIPC+Everywhere: Change IPC decoders to construct values in-place
Currently, the generated IPC decoders will default-construct the type to
be decoded, then pass that value by reference to the concrete decoder.
This, of course, requires that the type is default-constructible. This
was an issue for decoding Variants, which had to require the first type
in the Variant list is Empty, to ensure it is default constructible.

Further, this made it possible for values to become uninitialized in
user-defined decoders.

This patch makes the decoder interface such that the concrete decoders
themselves contruct the decoded type upon return from the decoder. To do
so, the default decoders in IPC::Decoder had to be moved to the IPC
namespace scope, as these decoders are now specializations instead of
overloaded methods (C++ requires specializations to be in a namespace
scope).
2022-12-26 09:36:16 +01:00
..
Account.cpp AK: Stop using DeprecatedString in Base64 encoding 2022-12-20 10:34:19 +01:00
Account.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
AnonymousBuffer.cpp
AnonymousBuffer.h LibIPC+Everywhere: Change IPC decoders to construct values in-place 2022-12-26 09:36:16 +01:00
ArgsParser.cpp Everywhere: Use C++ concepts instead of requires clauses 2022-12-09 11:25:30 +00:00
ArgsParser.h Everywhere: Use C++ concepts instead of requires clauses 2022-12-09 11:25:30 +00:00
CMakeLists.txt LibCore: Move the MemoryStream implementation into a separate file 2022-12-15 13:28:29 +00:00
Command.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
Command.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
ConfigFile.cpp LibConfig+LibCore+ConfigServer: Support u32 configuration entries 2022-12-23 23:26:21 +01:00
ConfigFile.h LibConfig+LibCore+ConfigServer: Support u32 configuration entries 2022-12-23 23:26:21 +01:00
DateTime.cpp LibCore: Convert explicit timezone to local in DateTime::parse 2022-12-19 07:07:49 -05:00
DateTime.h LibIPC+Everywhere: Change IPC decoders to construct values in-place 2022-12-26 09:36:16 +01:00
Debounce.h LibCore: Add Core::debounce(function, timeout) 2022-07-19 11:10:02 +01:00
DeferredInvocationContext.h
Directory.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
Directory.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
DirIterator.cpp Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
DirIterator.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
ElapsedTimer.cpp
ElapsedTimer.h
Event.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
Event.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
EventLoop.cpp Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
EventLoop.h LibAudio: Prevent racy eternal deadlock of the audio enqueue thread 2022-07-22 19:35:41 +01:00
File.cpp LibCore: Use a StringView for the file path in File::remove 2022-12-23 10:38:14 -05:00
File.h LibCore: Use a StringView for the file path in File::remove 2022-12-23 10:38:14 -05:00
FilePermissionsMask.cpp LibCore: Implement four-digit modes for FilePermissionsMask parsing 2022-07-27 21:45:01 +00:00
FilePermissionsMask.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
FileStream.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
FileWatcher.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
FileWatcher.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
Forward.h
GetPassword.cpp
GetPassword.h
Group.cpp LibCore: Protect Core::Group against null group::gr_mem members 2022-12-14 07:25:36 -05:00
Group.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
InputBitStream.h LibCore: Use the new Handle type for the BitStream types 2022-12-12 16:21:39 +00:00
IODevice.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
IODevice.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
LocalServer.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
LocalServer.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
LockFile.cpp LibCore+Userland: Remove File::ensure_parent_directories 2022-04-11 00:08:48 +02:00
LockFile.h
MappedFile.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
MappedFile.h LibCore+LibGfx: Pass file-path as StringView 2022-06-14 23:00:52 +02:00
MemoryStream.cpp LibCore: Add an automatically allocating MemoryStream 2022-12-15 13:28:29 +00:00
MemoryStream.h LibCore: Add an automatically allocating MemoryStream 2022-12-15 13:28:29 +00:00
MimeData.cpp Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
MimeData.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
NetworkJob.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
NetworkJob.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
NetworkResponse.h
Notifier.cpp
Notifier.h
Object.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
Object.h LibCore: Support write-only Object properties 2022-12-09 00:05:30 +01:00
Process.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
Process.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
ProcessStatisticsReader.cpp LibCore: Rename Stream::read_all to read_until_eof 2022-12-12 14:16:42 +01:00
ProcessStatisticsReader.h LibCore: Use Core::Stream for ProcessStatisticsReader 2022-12-10 11:49:24 +00:00
Promise.h Everywhere: Remove unnecessary mutable attributes from lambdas 2022-11-19 14:37:31 +00:00
Property.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
Property.h LibCore: Support write-only Object properties 2022-12-09 00:05:30 +01:00
Proxy.h LibIPC+Everywhere: Change IPC decoders to construct values in-place 2022-12-26 09:36:16 +01:00
SecretString.cpp
SecretString.h Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
SessionManagement.cpp LibCore: Use Core::Stream for ProcessStatisticsReader 2022-12-10 11:49:24 +00:00
SessionManagement.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
SharedCircularQueue.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
SocketAddress.h Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
SOCKSProxyClient.cpp LibCore: Use AllocatingMemoryStream for SOCKSProxyClient 2022-12-15 13:28:29 +00:00
SOCKSProxyClient.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
StandardPaths.cpp LibCore: Use the user's root session ID for standard runtime path 2022-12-15 17:29:19 +00:00
StandardPaths.h LibCore: Add a standard path for runtime communication files 2022-12-11 10:08:17 -05:00
Stream.cpp LibCore: Use System::getaddrinfo() in Socket::resolve_host 2022-12-15 13:38:13 +00:00
Stream.h LibCore: Add Stream::Handle 2022-12-12 16:21:39 +00:00
System.cpp AK+Everywhere: Move custom deleter capability to OwnPtr 2022-12-17 16:00:08 -05:00
System.h AK+Everywhere: Move custom deleter capability to OwnPtr 2022-12-17 16:00:08 -05:00
SystemServerTakeover.cpp LibCore: Use ';' to split socket path in SOCKET_TAKEOVER 2022-12-15 12:33:36 -05:00
SystemServerTakeover.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
TCPServer.cpp LibCore: Allow TCPServer's port to be reused after it exits 2022-11-14 13:43:24 -05:00
TCPServer.h LibCore: Allow TCPServer's port to be reused after it exits 2022-11-14 13:43:24 -05:00
TempFile.cpp LibCore: Use a StringView for the file path in File::remove 2022-12-23 10:38:14 -05:00
TempFile.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
Timer.cpp
Timer.h
UDPServer.cpp LibCore: Make UDPServer::receive() return ErrorOr<ByteBuffer> 2022-12-20 10:45:20 +01:00
UDPServer.h LibCore: Make UDPServer::receive() return ErrorOr<ByteBuffer> 2022-12-20 10:45:20 +01:00
UmaskScope.h Everywhere: Fix order of includes and #pragma once 2022-09-18 18:30:05 -07:00
Version.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
Version.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00