-
Streamlined method definitions, replaced explicit loop counters with range-based loops, and added `final` specifier to class and methods to ensure overriding restrictions. Simplified constructor and member variable initialization.
-
…ssing to simplify buffer handling
-
…cess for consistency and readability.
-
Refactor object reading logic in `QPDF` for clarity and improved main…
-
Simplify `readObjectAtOffset` by splitting responsibilities into separate functions: `read_object_start` and a streamlined `readObjectAtOffset`. Remove redundant parameters and improve code readability, ensuring better modularity for object reading operations.
-
Extend xref reconstruction sanity checks
-
After xref reconstruction treat the input file as suspect and apply sanity checks to all subsequent object reads. Remove `in_xref_reconstruction` flag and update references to use `reconstructed_xref` for simplified state management during xref processing. Adjust warnings for invalid dictionary keys in test output.
-
Refactor `Pl_DCT` buffer management to use `std::string` and simplify…
-
…n/decompression logic. Remove redundant `Buffer` class dependency.
-
Apply sanity checks on dangling reference object ids encountered before
-
the xref table has been loaded
-
Improve sanity checks and error handling in `QPDFParser`
-
Enhanced handling of unexpected tokens during xref table reconstruction. Adjusted logic for invalid tokens, ensuring better robustness during PDF parsing of corrupt PDF files.
-
Enhance error handling for unexpected tokens during sanity checks
-
Implemented stricter sanity checks to handle unexpected tokens like array/dictionary close and endobj/endstream more effectively. Improved warning messages and handling of corrupt objects to enhance PDF parsing robustness.
-
Apply sanity checks during xref stream parsing
-
Detect corrupt xref streams early to avoid excessive runtime and memory usage.
-
Fix apparent typo for zopfli enablement
-
Refactor ADBE handling logic in QPDFWriter.
-
Reorganized and cleaned up the logic for managing ADBE entries in the /Extensions dictionary, improving clarity and maintainability. Adjusted object shallow copying to avoid unnecessary copying.
-
Fix startxref recovery
-
Backup and restore the xref table during attempted startxref recovery to avoid corrupt states. Added a guard condition to handle invalid xref entries types, preventing processing of unsupported cases. These changes improve robustness during PDF parsing and recovery.
-
cmake complains when building with -DZOPFLI-ON as opposed to =ON
-
Temporarily rename qpdf_pages_fuzzer to qpdf_page_fuzzer
-
Allow an existing unreproducable case to age out.
-
Pipeline_private.hh should include qpdf/Types.h for qpdf_offset_t
-
Modernize code
-
Replaced raw pointer defaults (e.g., `0`) with `nullptr` for better readability and type-safety. Simplified object initializer syntax using uniform initialization `{}`. These changes enhance code maintainability and ensure modern C++ standards compliance. -
Refactored several classes to use C++11 `final` specifiers for inheritance restrictions and added default member initializations. These changes enhance code clarity, improve safety, and ensure modern coding practices.
-
This change updates all occurrences of `std::endl` to `\n` across various files for improved efficiency and consistency. It reduces unnecessary flushing of output buffers associated with `std::endl` while maintaining the same output format.
-
Refactor code to eliminate redundant `this->` qualifiers, enhancing readability and consistency across the codebase. This modification simplifies member variable access and aligns with modern C++ coding practices.
-
Replaced std::shared_ptr<char> with std::string for passwords in QPDFJob. This simplifies memory management and aligns the implementation with modern C++ standards, improving code readability and maintainability.
-
Replaced shared pointer usage with a plain std::string for passwords in PageSpec to simplify code and enhance readability. Updated relevant logic and function calls to align with this change, removing unnecessary shared pointer management. Updated TODO to reflect completion of this modernization step.
-
Replaced `std::shared_ptr<char>` with `std::string` for password fields to simplify memory management and improve clarity. Updated relevant method implementations and function calls accordingly. This change ensures more straightforward and safer password handling throughout the codebase.
-
Replaces `std::shared_ptr<char const*>` with `std::vector<char const*>` for `argv` and `bash_argv` processing. This simplifies memory management, improves code clarity, and ensures better alignment with modern C++ practices. Updated all associated logic to handle `std::vector` operations efficiently.
-
Replaces `std::shared_ptr<char const>` with `std::string` for `new_argv` and `bash_argv` to simplify memory management and improve clarity. Updated relevant operations to use `std::string` methods, eliminating unnecessary shared pointer usage.
-
Replaced raw shared pointers with std::string for `infilename` to improve simplicity and readability. Added a boolean `empty_input` flag to explicitly track empty input cases. Adjusted related logic and function calls accordingly for consistency.
-
Replaced shared_ptr<char> with std::string for `outfilename` in QPDFJob, simplifying its usage and reducing unnecessary memory management overhead. Updated related conditional checks and logic to align with the updated type. These changes improve code readability and maintainability.