serenity/Libraries
asynts 96edcbc27c AK: Lower the requirements for InputStream::eof and rename it.
Consider the following snippet:

    void foo(InputStream& stream) {
        if(!stream.eof()) {
            u8 byte;
            stream >> byte;
        }
    }

There is a very subtle bug in this snippet, for some input streams eof()
might return false even if no more data can be read. In this case an
error flag would be set on the stream.

Until now I've always ensured that this is not the case, but this made
the implementation of eof() unnecessarily complicated.
InputFileStream::eof had to keep a ByteBuffer around just to make this
possible. That meant a ton of unnecessary copies just to get a reliable
eof().

In most cases it isn't actually necessary to have a reliable eof()
implementation.

In most other cases a reliable eof() is avaliable anyways because in
some cases like InputMemoryStream it is very easy to implement.
2020-09-14 20:58:12 +02:00
..
LibAudio AK: Rename KB, MB, GB to KiB, MiB, GiB 2020-08-16 16:33:28 +02:00
LibC Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
LibChess LibChess: Shrink Chess::Piece from 8 bytes to 1 byte 2020-08-21 13:46:07 +02:00
LibCompress AK: Lower the requirements for InputStream::eof and rename it. 2020-09-14 20:58:12 +02:00
LibCore AK: Lower the requirements for InputStream::eof and rename it. 2020-09-14 20:58:12 +02:00
LibCrypt Everywhere: Port to String::copy_characters_to_buffer() 2020-08-30 17:35:27 +02:00
LibCrypto LibCrypto: Do not silently ignore key size mismatch 2020-08-28 11:36:57 +02:00
LibDebug Kernel: Fix various forward declarations 2020-09-12 13:46:15 +02:00
LibDesktop FileManager: Allow double-clicking applications again 2020-07-15 00:11:30 +02:00
LibELF Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
LibGemini AK: Rename KB, MB, GB to KiB, MiB, GiB 2020-08-16 16:33:28 +02:00
LibGfx LibGfx+LibGUI: Allow setting tab text alignment with set_property() 2020-09-14 19:55:17 +02:00
LibGUI LibGUI: Minor consistency cleanup in AbstractView::set_cursor() (#3478) 2020-09-14 20:55:07 +02:00
LibHTTP LibHTTP: Fix processing terminating chunk 2020-08-19 15:28:31 +02:00
LibImageDecoderClient
LibIPC LibIPC: Remove unused DisconnectedEvent mechanism 2020-09-12 14:49:29 +02:00
LibJS LibJS: Check validity of computed_property_name() result before using it 2020-09-12 11:29:39 +02:00
LibKeyboard Kernel+LibKeyboard: Store the keymap name when setting system keymap 2020-08-06 17:45:06 +02:00
LibLine LibLine: Make ^R search match the input anywhere in a given line 2020-09-07 11:42:56 +02:00
LibM LibM: Mark compilation-unit-only functions as static 2020-08-12 20:40:59 +02:00
LibMarkdown LibMarkdown: Make warning messages conditional 2020-09-12 13:46:15 +02:00
LibPCIDB LibPCIDB: Mark compilation-unit-only functions as static 2020-08-12 20:40:59 +02:00
LibProtocol ProtocolServer+LibTLS: Pipe certificate requests from LibTLS to clients 2020-08-02 18:57:51 +02:00
LibPthread Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
LibTextCodec LibTextCodec: Mark compilation-unit-only functions as static 2020-08-12 20:40:59 +02:00
LibThread LibThread: Uninitialized member variable in Thread, found by Coverity 2020-08-17 09:17:57 +02:00
LibTLS AK: Add Endian.h header to replace NetworkOrdered.h. 2020-08-25 16:22:14 +02:00
LibUnwind
LibVT Terminal: Make sure empty hrefs set a null string on Attribute 2020-09-13 11:34:49 +02:00
LibWeb LibWeb: Register the InProcessWebView widget 2020-09-14 16:16:36 +02:00
LibX86 LibX86: Remove some allocations from Instruction::to_string 2020-08-16 19:38:55 +02:00
CMakeLists.txt Chess: Refactor game logic into LibChess for use in engines 2020-08-21 12:26:30 +02:00