-
…, transition `interpretCF` to a class method, and eliminate redundant parameter passing for improved clarity and maintainability.
-
…rs::initialize` and replacing shared pointers with references for improved clarity and maintainability.
-
…t parameter passing, and improve maintainability. Change static functions and QPDF methods to EncryptionData methods.
-
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.
-
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.
-
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.
-
…n/decompression logic. Remove redundant `Buffer` class dependency.
-
the xref table has been loaded
-
Enhanced handling of unexpected tokens during xref table reconstruction. Adjusted logic for invalid tokens, ensuring better robustness during PDF parsing of corrupt PDF files.
-
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.
-
Detect corrupt xref streams early to avoid excessive runtime and memory usage.
-
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.
-
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.
-
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.
-
Simplified checks for empty containers and strings across the codebase using the `.empty()` method. This improves code readability and adheres to best practices for checking emptiness.
-
Converted multiple occurrences of `count()` to `contains()` throughout the codebase where the goal was to check key existence in containers. This improves code readability and aligns with modern C++ practices, particularly with C++20, making the intent more explicit and potentially aiding performance.
-
Replace repeated key checks with `want_key` lambda for clarity and maintainability. Transition `Pl_String` from shared to unique ownership to reflect intent and improve resource management. No functional changes introduced.
-
Consolidate and replace inline JSON schema strings with static constexpr constants for better organization and maintainability. Functionality remains unchanged.
-
Centralize JSON schema dictionary member addition by introducing `add_if_want_key`. This reduces redundancy and improves maintainability by consolidating repeated logic. No changes to functionality were made.
-
Replaces repetitive key-check conditions with a reusable lambda function `want_key`, improving code readability and maintainability. Simplifies logic across multiple conditional sections in `QPDFJob.cc`.
-
Replaced `else if` chains with standalone `if` statements for clarity. Updated conditional checks with modern coding practices, such as using `.contains()` instead of `.count()`. These changes enhance code maintainability and ensure better style consistency.
-
Replace `count` method with iterator-based lookup to improve readability and reduce redundancy. Simplify conditional logic for determining the encryption filter, ensuring the default case remains clear.
-
Replaced manual key-value access with structured bindings in loops for better readability and modern C++ practices. Simplified error handling using `emplace_back` instead of `push_back`. Improved consistency and clarity in schema validation logic.
-
Simplified code by removing redundant `this` qualifiers where they are not essential, improving readability and alignment with coding standards. No changes were made to functionality.
-
qpdf permits replacing standard stream filters with user provided filters. #1457 incorrectly removed that option.
-
Introduced explicit checks for empty streams and refined filtering conditions for improved clarity and correctness.