Commit 7c88bb98a17d48c4c2901d32c1f72b615959536e
1 parent
f3583bc0
Word-smith release notes
Showing
1 changed file
with
25 additions
and
28 deletions
manual/release-notes.rst
| ... | ... | @@ -27,21 +27,22 @@ more detail. |
| 27 | 27 | include ``<qpdf/Constants.h>``, and replace ``QPDFObject::ot_`` |
| 28 | 28 | with ``::ot_`` in your code. |
| 29 | 29 | |
| 30 | - - ``QPDFObjectHandle::replaceOrRemoveKey`` has been removed since | |
| 31 | - it was identical to ``QPDFObjectHandle::replaceKey``. | |
| 30 | + - The deprecated ``QPDFObjectHandle::replaceOrRemoveKey`` method has been | |
| 31 | + removed since it was identical to ``QPDFObjectHandle::replaceKey``. | |
| 32 | 32 | |
| 33 | - - ``JSON::checkDictionaryKeySeen`` has been removed. If ``JSON::parse`` | |
| 34 | - encounters duplicate keys the last value is silently accepted instead | |
| 35 | - of throwing a runtime error. | |
| 33 | + - The deprecated ``JSON::checkDictionaryKeySeen`` function has been removed. | |
| 34 | + If ``JSON::parse`` encounters duplicate keys the last value is silently | |
| 35 | + accepted instead of throwing a runtime error. This is consistent with the | |
| 36 | + JSON specification. | |
| 36 | 37 | |
| 37 | - - Deprecated versionless overload of ``QPDFObjectHandle::getJSON`` | |
| 38 | - has been removed. | |
| 38 | + - The deprecated versionless overload of ``QPDFObjectHandle::getJSON`` has | |
| 39 | + been removed. | |
| 39 | 40 | |
| 40 | - - ``Buffer`` copy constructor and assignment operator have been | |
| 41 | - removed. ``Buffer`` copy operations are expensive as they always | |
| 42 | - involve copying the buffer content. Use ``buffer2 = buffer1.copy();`` | |
| 43 | - or ``Buffer buffer2{buffer1.copy()};`` to make it explicit that | |
| 44 | - copying is intended. | |
| 41 | + - The deprecated ``Buffer`` copy constructor and assignment operator have | |
| 42 | + been removed. ``Buffer`` copy operations are expensive as they always | |
| 43 | + involve copying the buffer content. Use ``buffer2 = buffer1.copy();`` or | |
| 44 | + ``Buffer buffer2{buffer1.copy()};`` to make it explicit that copying is | |
| 45 | + intended. | |
| 45 | 46 | |
| 46 | 47 | - ``QIntC.hh`` contained the typo ``substract`` in function names, |
| 47 | 48 | which has been fixed to ``subtract``. |
| ... | ... | @@ -83,10 +84,9 @@ more detail. |
| 83 | 84 | copies the file ``check`` to ``out.pdf`` but may in future check ``out.pdf``. |
| 84 | 85 | Use ``qpdf ./check out.pdf`` or ``qpdf -- check out.pdf`` instead. |
| 85 | 86 | |
| 86 | - | |
| 87 | 87 | - Bug fixes |
| 88 | 88 | |
| 89 | - - In object streams ignore objects with invalid offset. Report objects with invalid | |
| 89 | + - In object streams, ignore objects with invalid offset. Report objects with invalid | |
| 90 | 90 | id or offset. |
| 91 | 91 | |
| 92 | 92 | - Library Enhancements |
| ... | ... | @@ -98,7 +98,7 @@ more detail. |
| 98 | 98 | would have to write code specifically to do that, so if you're not |
| 99 | 99 | sure, then you shouldn't have to worry. |
| 100 | 100 | |
| 101 | - - Most ``QPDFObjectHandle`` accessor methods are now const qualified. | |
| 101 | + - Most ``QPDFObjectHandle`` accessor methods are now ``const`` qualified. | |
| 102 | 102 | |
| 103 | 103 | - ``QPDFObjectHandle`` and all object helper classes are now explicitly convertible |
| 104 | 104 | to ``QPDFObjGen``, and therefore can be passed as parameter where a ``QPDFObjGen`` |
| ... | ... | @@ -108,28 +108,25 @@ more detail. |
| 108 | 108 | |
| 109 | 109 | - Build Changes |
| 110 | 110 | |
| 111 | - - If ``POINTERHOLDER_TRANSITION`` is not defined, define it to | |
| 112 | - ``4``, which completely removes ``PointerHolder`` from the API. | |
| 113 | - Stop including it from any headers that used to include it. This | |
| 114 | - means code that hasn't completed its ``PointerHolder`` | |
| 115 | - transition will get errors unless it defines | |
| 116 | - ``POINTERHOLDER_TRANSITION``, and any file that uses | |
| 117 | - ``PointerHolder`` will have to explicitly include it rather than | |
| 118 | - relying on other headers to bring it along. Additionally, | |
| 119 | - ``qpdf/PointerHolder.hh`` is no longer included by any qpdf | |
| 120 | - header files. | |
| 111 | + - If ``POINTERHOLDER_TRANSITION`` is not defined, it is now automatically | |
| 112 | + defined to ``4``, which completely removes ``PointerHolder`` from the API. | |
| 113 | + It is no longer included by any qpdf headers. This means code that hasn't | |
| 114 | + completed its ``PointerHolder`` transition will get errors unless it | |
| 115 | + defines ``POINTERHOLDER_TRANSITION``, and any file that uses | |
| 116 | + ``PointerHolder`` will have to explicitly include it rather than relying | |
| 117 | + on other headers to bring it along. | |
| 121 | 118 | |
| 122 | 119 | - Other Changes |
| 123 | 120 | |
| 124 | 121 | - The internal implementation of objects has been extensively refactored, using |
| 125 | - std::variant to eliminate one level of indirection. This has saved one shared pointer | |
| 122 | + ``std::variant`` to eliminate one level of indirection. This has saved one shared pointer | |
| 126 | 123 | per object with some improvement both in runtime and memory usage. A new class |
| 127 | 124 | ``BaseHandle`` has been added as common base class of both ``QPDFObjectHandle`` |
| 128 | 125 | and ``QPDFObjectHelper`` to provide common functionality appropriate for all |
| 129 | - object-handle-like classes including e.g. the operator to convert to ``QPDFObjGen``. | |
| 126 | + object-handle-like classes such as the operator to convert to ``QPDFObjGen``. | |
| 130 | 127 | ``BaseHandle`` is an implementation detail and not directly usable by library users. |
| 131 | 128 | |
| 132 | - - There has also been significant refactoring of how qpdf internally iterates over | |
| 129 | + - There has been significant refactoring of how qpdf internally iterates over | |
| 133 | 130 | arrays and dictionaries. |
| 134 | 131 | |
| 135 | 132 | - The internal mechanism used to check object sizes for binary | ... | ... |