Commit 7c88bb98a17d48c4c2901d32c1f72b615959536e

Authored by Jay Berkenbilt
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