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 2022-11-19 Jay Berkenbilt <ejb@ql.org> 10 2022-11-19 Jay Berkenbilt <ejb@ql.org>
2 11
3 * Bug fix: handle special case of an earlier xref stream object's 12 * Bug fix: handle special case of an earlier xref stream object's
@@ -18,6 +27,8 @@ @@ -18,6 +27,8 @@
18 27
19 * Change minimum required C++ version from C++-14 to C++-17. 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 2022-10-01 Jay Berkenbilt <ejb@ql.org> 32 2022-10-01 Jay Berkenbilt <ejb@ql.org>
22 33
23 * 11.1.1: release 34 * 11.1.1: release
include/qpdf/QPDFObjectHandle.hh
@@ -616,34 +616,41 @@ class QPDFObjectHandle @@ -616,34 +616,41 @@ class QPDFObjectHandle
616 QPDF_DLL 616 QPDF_DLL
617 static QPDFObjectHandle newFromMatrix(QPDFMatrix const&); 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 // Create a new stream and associate it with the given qpdf 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 // retrieved by calling getDict(), and the resulting dictionary 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 QPDF_DLL 630 QPDF_DLL
626 static QPDFObjectHandle newStream(QPDF* qpdf); 631 static QPDFObjectHandle newStream(QPDF* qpdf);
627 632
628 // Create a new stream and associate it with the given qpdf 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 // dictionary's /Length key will automatically be set to the size 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 // stream's dictionary may be retrieved by calling getDict(), and 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 // you don't have to deal with compression yourself if you use 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 QPDF_DLL 647 QPDF_DLL
642 static QPDFObjectHandle newStream(QPDF* qpdf, std::shared_ptr<Buffer> data); 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 // create a copy of the data rather than using the user-provided 651 // create a copy of the data rather than using the user-provided
646 // buffer as in the std::shared_ptr<Buffer> version of newStream. 652 // buffer as in the std::shared_ptr<Buffer> version of newStream.
  653 + // From QPDF 11.2, you can call QPDF::newStream() instead.
647 QPDF_DLL 654 QPDF_DLL
648 static QPDFObjectHandle newStream(QPDF* qpdf, std::string const& data); 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,18 +8,34 @@ For a detailed list of changes, please see the file
8 8
9 .. x.y.z: not yet released 9 .. x.y.z: not yet released
10 10
11 -11.2.0: not yet released 11 +11.2.0: November 20, 2022
12 - Build changes 12 - Build changes
13 13
14 - A C++-17 compiler is now required. 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 - Bug fixes 26 - Bug fixes
17 27
  28 + - Fix issue with missing symbols in the mingw build.
  29 +
18 - Fix major performance bug with the OpenSSL crypto provider. This 30 - Fix major performance bug with the OpenSSL crypto provider. This
19 bug was causing a 6x to 12x slowdown for encrypted files when 31 bug was causing a 6x to 12x slowdown for encrypted files when
20 OpenSSL 3 was in use. This includes the default Windows builds 32 OpenSSL 3 was in use. This includes the default Windows builds
21 distributed with the qpdf release. 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 11.1.1: October 1, 2022 39 11.1.1: October 1, 2022
24 - Bug fixes 40 - Bug fixes
25 41