-
Move all stream-specific methods to new class qpdf::Stream
-
Except for virtual functions to avoid the need for users to update code.
-
This improves indentation of long strings. This commit also fixes some trailing whitespace in ChangeLog.
-
When recovering XRef streams, start with the stream with the largest /Size rather than the largest offset. Also, if reconstruction fails to find a trailer with a valid /Root entry search for a root object.
-
Provide correct obj_gen and offset.
-
This reverts commit ff2a78f579ebdd06b417e34260a17dba06e71137, reversing changes made to 8f54319f7a6514110f4b05cbbf1cb1c9fc8cb6a0.
-
This reverts commit 0e92cf6bf399249c603c3d0212e898fd29e71fcd, reversing changes made to 7d34b89a69e8e89c098dd373442f7df809c28eff.
-
This reverts commit c648b9a018105a3c30b3e7f3c5f8a058d3ddd92c, reversing changes made to 12b67a3227df6b6df3a4f5f098e11cce173ff7d5.
-
Also, make obj_cache private and rename to table.
-
Move methods responsible for loading or keeping track of objects to QPDF_objects.cc.
-
Return results rather than using reference parameters. Fixes bug in #1272 where parameters were not reinitialized when calling read_bad_entry from read_entry.
-
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.
-
Split reconstruction into two passes - scanning of input for objects and insertion of objects into the xref table. This allows insertion to take place in the usual reverse order and removes the need for a separate insert_reconstructed method.
-
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.