-
- Marked `NNTreeIterator` and `NNTreeImpl` as `final` to prevent inheritance. - Inlined `NNTreeIterator` and `NNTreeImpl` methods to streamline code and reduce redundancy. - Updated constructors, operators, and utility functions in `NNTreeIterator` and `NNTreeImpl` for improved readability and maintainability.
-
- Added `const` qualifiers to member functions and parameters where applicable. - Replaced `QPDFObjectHandle` arrays with `qpdf::Array` for improved type clarity. - Simplified logic in `compareKeyItem` and `compareKeyKid` by removing redundant checks.
-
- Simplified the code by directly handling limits validation in `compareKeyKid`. - Improved clarity by reducing unnecessary method indirection.
-
- Removed `NNTreeDetails` and moved key validation logic directly into `NNTreeImpl`. - Replaced type determination with `qpdf_object_type_e` for improved clarity. - Updated `QPDFNameTreeObjectHelper` and `QPDFNumberTreeObjectHelper` to align with the new `NNTreeImpl` structure. - Simplified methods accessing tree items and validating keys.
-
- Introduced a `validate()` method in `QPDFNameTreeObjectHelper`, `QPDFNumberTreeObjectHelper`, and `NNTreeImpl`. - Ensure proper validation of tree keys and values, detecting invalid entries, unsorted keys, and inconsistencies. - Added support for auto-repair in case of validation errors.
-
- Introduced `std::function<bool(QPDFObjectHandle const&)>` to validate tree values. - Updated constructors and methods across `QPDFNameTreeObjectHelper` and `QPDFNumberTreeObjectHelper` to support value validation. - Refactored `NNTreeImpl` to check for invalid values during insertion, iteration, and retrieval. - Improved error handling and reporting for invalid values.
-
Fixes bug in #1523
-
Fixes bug in #1523
-
…tem` with `size` and subscript operators, simplify logic, and improve error handling.
-
…ems` and `getArrayItem` with `size` and subscript operators, and improve code readability.
-
…ms` and `getArrayItem` with `size` and subscript operators, remove redundant debug traces, and improve readability.
-
…em` with `size` and subscript operators, remove redundant debug traces, simplify loop logic, and improve readability.
-
…` and subscript operators, remove redundant debug traces, and improve code readability.
-
…eplace `getArrayNItems` with `size`, and improve error handling logic.
-
…Items` with subscript operators, introduce `std::cmp` utilities, and remove redundant debug traces.
-
…logic, and replace redundant code with subscript operators.
-
…lify `withinLimits` logic, and improve code readability with subscript operators.
-
…` and `getArrayNItems` with subscript operators for readability and cleaner syntax.
-
…edundant debug traces.
-
…and improve `findInternal` readability.
-
…dding error counting and leveraging `reconstructed_xref` for improved robustness, limiting the acceptable number of errors for damaged files.
-
…cess for consistency and readability.
-
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 improves indentation of long strings. This commit also fixes some trailing whitespace in ChangeLog.
-
Avoid copying exceptions.
-
I decided these were confusing and inconsistent with how JSON works. They muddle the API rather than improving it.