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,21 +27,22 @@ more detail. | ||
| 27 | include ``<qpdf/Constants.h>``, and replace ``QPDFObject::ot_`` | 27 | include ``<qpdf/Constants.h>``, and replace ``QPDFObject::ot_`` |
| 28 | with ``::ot_`` in your code. | 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 | - ``QIntC.hh`` contained the typo ``substract`` in function names, | 47 | - ``QIntC.hh`` contained the typo ``substract`` in function names, |
| 47 | which has been fixed to ``subtract``. | 48 | which has been fixed to ``subtract``. |
| @@ -83,10 +84,9 @@ more detail. | @@ -83,10 +84,9 @@ more detail. | ||
| 83 | copies the file ``check`` to ``out.pdf`` but may in future check ``out.pdf``. | 84 | copies the file ``check`` to ``out.pdf`` but may in future check ``out.pdf``. |
| 84 | Use ``qpdf ./check out.pdf`` or ``qpdf -- check out.pdf`` instead. | 85 | Use ``qpdf ./check out.pdf`` or ``qpdf -- check out.pdf`` instead. |
| 85 | 86 | ||
| 86 | - | ||
| 87 | - Bug fixes | 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 | id or offset. | 90 | id or offset. |
| 91 | 91 | ||
| 92 | - Library Enhancements | 92 | - Library Enhancements |
| @@ -98,7 +98,7 @@ more detail. | @@ -98,7 +98,7 @@ more detail. | ||
| 98 | would have to write code specifically to do that, so if you're not | 98 | would have to write code specifically to do that, so if you're not |
| 99 | sure, then you shouldn't have to worry. | 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 | - ``QPDFObjectHandle`` and all object helper classes are now explicitly convertible | 103 | - ``QPDFObjectHandle`` and all object helper classes are now explicitly convertible |
| 104 | to ``QPDFObjGen``, and therefore can be passed as parameter where a ``QPDFObjGen`` | 104 | to ``QPDFObjGen``, and therefore can be passed as parameter where a ``QPDFObjGen`` |
| @@ -108,28 +108,25 @@ more detail. | @@ -108,28 +108,25 @@ more detail. | ||
| 108 | 108 | ||
| 109 | - Build Changes | 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 | - Other Changes | 119 | - Other Changes |
| 123 | 120 | ||
| 124 | - The internal implementation of objects has been extensively refactored, using | 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 | per object with some improvement both in runtime and memory usage. A new class | 123 | per object with some improvement both in runtime and memory usage. A new class |
| 127 | ``BaseHandle`` has been added as common base class of both ``QPDFObjectHandle`` | 124 | ``BaseHandle`` has been added as common base class of both ``QPDFObjectHandle`` |
| 128 | and ``QPDFObjectHelper`` to provide common functionality appropriate for all | 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 | ``BaseHandle`` is an implementation detail and not directly usable by library users. | 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 | arrays and dictionaries. | 130 | arrays and dictionaries. |
| 134 | 131 | ||
| 135 | - The internal mechanism used to check object sizes for binary | 132 | - The internal mechanism used to check object sizes for binary |