Commit ddd889af9d21c4cb6b3cf74ec750a3340217567c

Authored by Jay Berkenbilt
1 parent 4325e6e4

Fix release notes and ChangeLog for 11.2

ChangeLog
  1 +2022-11-20 Jay Berkenbilt <ejb@ql.org>
  2 +
  3 + * Add a few convenience methods to QPDFTokenizer::Token for
  4 + checking token types. thanks to M. Holger for the contribution.
  5 +
  6 + * Add stream creation methods to the QPDF class as a better
  7 + alternative to the ones in the QPDFObjectHandle class. Thanks to
  8 + M. Holger for the contribution.
  9 +
1 10 2022-11-19 Jay Berkenbilt <ejb@ql.org>
2 11  
3 12 * Bug fix: handle special case of an earlier xref stream object's
... ... @@ -18,6 +27,8 @@
18 27  
19 28 * Change minimum required C++ version from C++-14 to C++-17.
20 29  
  30 + * Fix another symbol export issue with the MinGW build.
  31 +
21 32 2022-10-01 Jay Berkenbilt <ejb@ql.org>
22 33  
23 34 * 11.1.1: release
... ...
include/qpdf/QPDFObjectHandle.hh
... ... @@ -616,34 +616,41 @@ class QPDFObjectHandle
616 616 QPDF_DLL
617 617 static QPDFObjectHandle newFromMatrix(QPDFMatrix const&);
618 618  
  619 + // Note: new stream creation methods have were added to the QPDF
  620 + // class starting with version 11.2.0. The ones in this class are
  621 + // here for backward compatibility.
  622 +
619 623 // Create a new stream and associate it with the given qpdf
620   - // object. A subsequent call must be made to replaceStreamData()
621   - // to provide data for the stream. The stream's dictionary may be
  624 + // object. A subsequent call must be made to replaceStreamData()
  625 + // to provide data for the stream. The stream's dictionary may be
622 626 // retrieved by calling getDict(), and the resulting dictionary
623   - // may be modified. Alternatively, you can create a new
624   - // dictionary and call replaceDict to install it.
  627 + // may be modified. Alternatively, you can create a new dictionary
  628 + // and call replaceDict to install it. From QPDF 11.2, you can
  629 + // call QPDF::newStream() instead.
625 630 QPDF_DLL
626 631 static QPDFObjectHandle newStream(QPDF* qpdf);
627 632  
628 633 // Create a new stream and associate it with the given qpdf
629   - // object. Use the given buffer as the stream data. The stream
  634 + // object. Use the given buffer as the stream data. The stream
630 635 // dictionary's /Length key will automatically be set to the size
631   - // of the data buffer. If additional keys are required, the
  636 + // of the data buffer. If additional keys are required, the
632 637 // stream's dictionary may be retrieved by calling getDict(), and
633   - // the resulting dictionary may be modified. This method is just
634   - // a convenient wrapper around the newStream() and
635   - // replaceStreamData(). It is a convenience methods for streams
636   - // that require no parameters beyond the stream length. Note that
  638 + // the resulting dictionary may be modified. This method is just a
  639 + // convenient wrapper around the newStream() and
  640 + // replaceStreamData(). It is a convenience methods for streams
  641 + // that require no parameters beyond the stream length. Note that
637 642 // you don't have to deal with compression yourself if you use
638   - // QPDFWriter. By default, QPDFWriter will automatically compress
639   - // uncompressed stream data. Example programs are provided that
640   - // illustrate this.
  643 + // QPDFWriter. By default, QPDFWriter will automatically compress
  644 + // uncompressed stream data. Example programs are provided that
  645 + // illustrate this. From QPDF 11.2, you can call QPDF::newStream()
  646 + // instead.
641 647 QPDF_DLL
642 648 static QPDFObjectHandle newStream(QPDF* qpdf, std::shared_ptr<Buffer> data);
643 649  
644   - // Create new stream with data from string. This method will
  650 + // Create new stream with data from string. This method will
645 651 // create a copy of the data rather than using the user-provided
646 652 // buffer as in the std::shared_ptr<Buffer> version of newStream.
  653 + // From QPDF 11.2, you can call QPDF::newStream() instead.
647 654 QPDF_DLL
648 655 static QPDFObjectHandle newStream(QPDF* qpdf, std::string const& data);
649 656  
... ...
manual/release-notes.rst
... ... @@ -8,18 +8,34 @@ For a detailed list of changes, please see the file
8 8  
9 9 .. x.y.z: not yet released
10 10  
11   -11.2.0: not yet released
  11 +11.2.0: November 20, 2022
12 12 - Build changes
13 13  
14 14 - A C++-17 compiler is now required.
15 15  
  16 + - Library enhancements
  17 +
  18 + - Move stream creation functions in the ``QPDF`` object where they
  19 + belong. The ones in ``QPDFObjectHandle`` are not deprecated and
  20 + will stick around.
  21 +
  22 + - Add some convenience methods to ``QPDFTokenizer::Token`` for
  23 + testing token types. This is part of qpdf's lexical layer and
  24 + will not be needed by most developers.
  25 +
16 26 - Bug fixes
17 27  
  28 + - Fix issue with missing symbols in the mingw build.
  29 +
18 30 - Fix major performance bug with the OpenSSL crypto provider. This
19 31 bug was causing a 6x to 12x slowdown for encrypted files when
20 32 OpenSSL 3 was in use. This includes the default Windows builds
21 33 distributed with the qpdf release.
22 34  
  35 + - Fix obscure bug involving appended files that reuse an object
  36 + number that was used as a cross reference stream in an earlier
  37 + stage of the file.
  38 +
23 39 11.1.1: October 1, 2022
24 40 - Bug fixes
25 41  
... ...