-
Also, delay adjustments for compressed objects until needed by linearization checks.
-
Optimistically read subsection headers without reading individual object entries, assuming that they are 20 bytes long as per the PDF spec. If problems are encountered, fall back to calling bad_subsections.
-
Replace QPDFXRefEntry with a std::variant of structs.
-
Temporarily disable 3 specific-bugs tests. Remove 'xref size mismatch' test.
-
Rename to Xref_table::process_section. Process trailer processing subsection entries.
-
Calculate all subsections before reading subsection entries. Duplicates some warnings for the time being.
-
Rename to Xref_table::subsection. Return results instead of using out parameters. Take on responsibility for throwing exception and calculation of offset of first subsection entry.
-
Also, remove redundant clearing of the xref tabl during QPDF destruction.
-
To be encapsulated later.
-
Also, when recovering trailer from xref streams, pick the last valid trailer encountered rather than the first.
-
Change the return type to a std::pair<bool, QPDFObjectHandle> in order to allow a default constructed object handle (which is currently returned to indicate failure) to become a valid object.
-
Tidy QPDF_Stream
-
Replace some std::shared_ptr parameters with reference parameters
-
1. Make class final 2. Pass og parameter by value 3. Properly initialize qpdf and og Also, tweak QPDF::replaceObject to allow stream replacement without violating the requirement that streams must always be indirect objects. Also, remove QPDF::reserveStream as it does not do what the name implies and having this as a separate methods does not aid code readability.
-
Given that the PDF spec requires the xref table to contain entries for all object ids <= the maximum id present in a PDF document, max_size is a qpdf implementation limitation for legitimate object ids.