-
Replaced raw key pointer and length parameters with a `std::string` in `Pl_AES_PDF` and `Pl_RC4` constructors for improved safety and clarity. Updated all usage sites accordingly, reducing reliance on manual memory management and redundant conversions.
-
…proved clarity and reduced indirection in pipeline management.
-
…proved clarity and reduced indirection in pipeline management.
-
…n and improve separation of concerns.
-
…pping, remove redundant `PipelinePopper` usage, and improve encapsulation of MD5 handling. # Conflicts: # libqpdf/QPDFWriter.cc
-
…implifying ID management and ensuring consistent initialization.
-
…y management and eliminate redundant `dynamic_cast` logic.
-
…, improving encapsulation and memory management. Remove the now redundant `pushMD5Pipeline` method and streamline MD5 activation.
-
…line `linearization pass1` logic when writing pass1 file
-
…te encryption handling
-
…mplified pipeline stack management in `QPDFWriter`.
-
…ify pipeline stack management
-
Encapsulated pipeline stack management into a dedicated `Pl_stack` class within `QPDFWriter::Members`. Reorganized related methods to streamline and simplify initialization and activation of pipelines, removing redundant code.
-
…dundant normalization and string unparse logic across multiple write calls.
-
…ndling, leverage `std::string_view`, and streamline QDF indent logic.
-
… overloads, streamline QDF handling, and simplify string and trailer writes.
-
…ased logic in `setEncryptionMinimumVersion`, and reduce redundancy across `QPDFWriter` methods.
-
…ption dictionary generation, and reduce redundancy in encryption handling logic.
-
… encryption handling, and reduce redundancy across methods.
-
…`, simplify method signatures, and centralize logic in `QPDF::EncryptionData` for improved maintainability.
-
…ng in method parameters, and simplify encryption logic for improved maintainability and reduced redundancy.
-
…uce redundancy, improve maintainability, and streamline parameter handling.
-
…ling, and improve maintainability.
-
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.
-
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. -
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.
-
qpdf permits replacing standard stream filters with user provided filters. #1457 incorrectly removed that option.
-
Only top-level XMP metadata is supposed to be left unencrypted. All other metadata is not treated specially.
-
Rather than converting each (sequential) object id to a string, generate a string for the first id and than increment the digits in the string.
-
... and use it in QPDFWriter and QPDF::generateHintStream.
-
Also, remove redundant QPDFWriter::writeBuffer.