-
Allow an existing unreproducable case to age out.
-
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.
-
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.
-
Refactor: Eliminate unnecessary `this` qualifiers
-
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.
-
Fix stream filter handling.
-
qpdf permits replacing standard stream filters with user provided filters. #1457 incorrectly removed that option.
-
Refactor Stream::pipeStreamData filtering logic for empty streams
-
Introduced explicit checks for empty streams and refined filtering conditions for improved clarity and correctness.
-
Refactor Stream::filterable and Stream::pipeStreamData
-
Replaced `std::shared_ptr` with `std::unique_ptr` in `SF_FlateLzwDecode` to improve memory management and clarify ownership semantics. Adjusted related code and function logic to accommodate the change, including moving pipelines into the vector.
-
Updated `SF_Crypt` class methods and destructor to use the `final` specifier for clarity and stricter override rules. Refactored `setDecodeParms` logic for better readability and accurate handling of dictionary keys. Other minor adjustments contribute to code maintainability and correctness.
-
Removed `expand_filter_name` method and integrated its functionality directly into `filter_factory` for improved clarity and maintainability. Consolidated filter handling logic to eliminate redundant operations and streamline code execution.
-
Replaced individual compression flags with a unified decode-level parameter for stream filtering. Introduced a helper function to handle filtering conditions, reducing redundancy and improving readability. Removed unused code and updated related tests to reflect these changes.
-
Stream provider logic has been streamlined by removing unnecessary variables and conditional checks. Adjusted handling of mismatched or missing stream lengths to improve code readability and maintainability.
-
Replaced shared_ptr with unique_ptr for pipeline management, reducing overhead and improving ownership semantics. Simplified conditional checks and modernized code to enhance readability by removing redundant variables and adjusting pointer usages. This refactor ensures better maintainability and minor performance gains in stream processing.
-
Moved `anyBadTokens` and `lastTokenWasBad` methods to inline definitions within the header file for improved readability and maintainability. Also marked the class and relevant methods as `final` to prevent further inheritance and overrides.
-
Refactored the handling of /DecodeParms by removing unnecessary vector creation and directly accessing elements in the decode array. This improves code clarity and maintains consistency with filters processing.