ladybird/Userland/Libraries/LibPDF
Nico Weber e7f7c434f7 LibPDF: Don't check for startxref after trailer dict
Several files have a comment after the trailer dict and the
`startxref` after it.

We really should add a consume_whitespace_and_comments() function
and call that in most places we currently call consume_whitespace().

But in this case, for non-linearized files, we first jump to the
end of the file, read `startxref`, then jump to `xref` from the
offset there, and then read the trailer after the `xref`,
only to read `startxref` again. So we can just not do that.

(For linearized files, we now completely ignore `startxref`.
But we don't use the data in `startxref` in linearized files
anyways, so it's fine to not read it there too.)

Reduces number of crashes on 300 random PDFs from the web (the first 300
from 0000.zip from
https://pdfa.org/new-large-scale-pdf-corpus-now-publicly-available/)
from 25 (8%) to 23 (7%).
2023-10-24 13:32:01 -04:00
..
Fonts LibPDF: Don't crash on fixed-width type 1 fonts that use /MissingWidth 2023-10-23 09:33:03 -04:00
CMakeLists.txt LibPDF: Move code to compute full page contents into Page 2023-07-12 18:22:35 -04:00
ColorSpace.cpp LibPDF: Make operator parsing use ReadonlySpan instead of Vector 2023-10-20 14:24:31 -04:00
ColorSpace.h LibPDF: Make operator parsing use ReadonlySpan instead of Vector 2023-10-20 14:24:31 -04:00
CommonNames.cpp AK+Everywhere: Rename FlyString to DeprecatedFlyString 2023-01-09 23:00:24 +00:00
CommonNames.h LibPDF: Get color rendering intent from image dict 2023-10-20 08:58:52 +02:00
Document.cpp LibPDF: Fix assertion when destination page is an index 2023-10-21 09:10:30 +02:00
Document.h LibPDF: Extract a create_destination_from_object() function 2023-10-18 06:29:02 -04:00
DocumentParser.cpp LibPDF: Don't check for startxref after trailer dict 2023-10-24 13:32:01 -04:00
DocumentParser.h LibPDF: Make PDF version accessible on Document 2023-07-11 13:49:17 -04:00
Encoding.cpp LibPDF: Add two FIXMEs 2023-10-13 07:53:27 +02:00
Encoding.h LibPDF: Add char_code -> name mapping function 2023-02-08 19:47:15 +01:00
Encryption.cpp LibPDF: Don't crash on encrypted files with streams with filter arrays 2023-07-24 09:50:45 -04:00
Encryption.h LibPDF: Implement 7.6.4.3.3 Algorithm 2.A: Retrieve file encryption key 2023-07-21 11:55:20 +02:00
Error.h LibPDF: Mark PDF::Error nodiscard 2023-07-12 17:03:14 +02:00
Filter.cpp LibPDF: Use TRY() to get decompression result 2023-10-23 09:30:41 -04:00
Filter.h LibPDF: Improve error support for Filter class 2023-03-02 12:18:53 +01:00
Forward.h Everywhere: Remove unused includes of AK/StdLibExtras.h 2023-01-02 20:27:20 -05:00
Interpolation.cpp LibPDF: Add first interpolation methods 2022-12-10 10:49:03 +01:00
Interpolation.h LibPDF: Add first interpolation methods 2022-12-10 10:49:03 +01:00
Object.h LibPDF: Make Object::cast<T>() non-const 2023-02-21 00:54:04 +01:00
ObjectDerivatives.cpp LibPDF: Fix quadratic runtime in stream dumping 2023-07-14 09:50:30 -04:00
ObjectDerivatives.h Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
Operator.h LibPDF: Fix symbol for text_next_line_show_string_set_spacing operator 2023-07-22 12:25:30 -04:00
Page.cpp LibPDF: Don't accidentally form new tokens on pages with contents arrays 2023-10-23 13:23:54 -04:00
Page.h LibPDF: Move code to compute full page contents into Page 2023-07-12 18:22:35 -04:00
Parser.cpp LibPDF: Tolerate comments after dict values 2023-10-23 09:28:00 -04:00
Parser.h LibPDF: Let parser process filters by default 2023-10-21 09:09:53 +02:00
Reader.cpp LibPDF: Don't consume anything other than EOL in Reader::consume_eol() 2023-03-22 09:04:00 +01:00
Reader.h LibPDF: Make Reader::move_by() parameter more truthful 2023-10-24 13:30:25 -04:00
Reference.h LibPDF: Make Reference store two u32s instead of one 2023-07-10 17:48:15 +01:00
Renderer.cpp LibPDF: Don't assert on named simple color space 2023-10-21 21:04:26 +02:00
Renderer.h LibPDF: Make operator parsing use ReadonlySpan instead of Vector 2023-10-20 14:24:31 -04:00
Value.cpp Everywhere: Stop shoving things into ::std and mentioning them as such 2022-12-14 11:44:32 +01:00
Value.h Everywhere: Stop shoving things into ::std and mentioning them as such 2022-12-14 11:44:32 +01:00
XRefTable.h LibPDF: Allow reading documents with incremental updates 2023-02-12 10:55:37 +00:00