2
1
mirror of https://github.com/qpdf/qpdf.git synced 2024-11-10 23:20:58 +00:00
Commit Graph

3080 Commits

Author SHA1 Message Date
Jay Berkenbilt
c5f61fcbd3 Improve efficiency of ResolveRecorder
Removing an element from a set with iterator is constant time, and
std::set specifies that other operations on the set do not invalidate
existing iterators.
2022-09-13 11:19:24 -04:00
Jay Berkenbilt
31b2cfbb79 Fix up a few comments 2022-09-13 11:18:49 -04:00
Jay Berkenbilt
62833ac74f Bump version to 11.1.0
Some new symbols were exported.
2022-09-12 13:19:07 -04:00
Jay Berkenbilt
d780954bb3 Add some missing QPDF_DLL markers
These markers are being added for nested classes that are already
marked with QPDF_DLL_CLASS. They don't make any different on Linux,
but they matter on Windows.
2022-09-12 13:19:07 -04:00
m-holger
416d9668ee Add default move constructor/assignment to QPDFObjectHandle 2022-09-12 13:18:56 -04:00
Jay Berkenbilt
7aa2306ef4 Bump version to 11.0.1 2022-09-12 12:43:46 -04:00
Jay Berkenbilt
4963ce6a53 Remove obsolete LL_FMT check from build (fixes #768)
This was broken for cross-compilation and has probably been
unnecessary for several years now.

Also fix extraneous whitespace in related some tests.
2022-09-12 11:48:38 -04:00
Jay Berkenbilt
1393f56e7c 11.0.0: Fix typos in comments in pkg-test 2022-09-10 11:33:18 -04:00
Jay Berkenbilt
43035c8987 Prepare 11.0.0 release 2022-09-10 09:46:09 -04:00
Jay Berkenbilt
cd7c8709aa Tweak release instructions 2022-09-10 09:45:45 -04:00
Jay Berkenbilt
38cd94bec8 Strengthen pkg-test
* Define POINTERHOLDER_TRANSITION
* Make sure we are getting the intended version of qpdf
2022-09-10 09:44:29 -04:00
Jay Berkenbilt
93f176a2a0
Documentation fix
Remove paragraph about traversal during destruction since this is still necessary with the
new implementation.
2022-09-10 07:39:25 -04:00
Jay Berkenbilt
8a3cdfd2af Change QPDFObjectHandle == to isSameObjectAs
Replace operator== and operator!=, which were testing for the same
underlying object, with isSameObjectAs. This change was motivated by
the fact that pikepdf internally had its own operator== method for
QPDFObjectHandle that did structural comparison. I backed out qpdf's
operator== as a courtesy to pikepdf (in my own testing) but also
because I think people might naturally assume that operator== does a
structural comparison, and isSameObjectAs is clearer in its intent.
2022-09-09 18:09:40 -04:00
Jay Berkenbilt
910a373a79 Clean up the Design and Library Notes chapter of the manual 2022-09-09 18:09:40 -04:00
Jay Berkenbilt
a6c4b293b1 Clean up release notes for qpdf 11 2022-09-09 10:49:25 -04:00
Jay Berkenbilt
3dbab589e3 Add C API functions for using custom loggers
Expose functions to the C API to create new loggers and to setLogger
and getLogger for QPDF and QPDFJob.
2022-09-09 10:49:25 -04:00
Jay Berkenbilt
0ad4e190ff Make QPDFLogger() private and provide create method 2022-09-09 07:03:29 -04:00
Andreas Stieger
7049588bff Fix tests with GNU grep 3.8
GNU grep 3.8 started to emit warnings when invoking egrep.
Convert all calls to grep -E.
2022-09-09 06:57:38 -04:00
Jay Berkenbilt
4dcc1021b8 Fix doc typo 2022-09-09 06:19:09 -04:00
Jay Berkenbilt
f1a2d3160a Add JSON v2 support to C API 2022-09-09 06:19:09 -04:00
Jay Berkenbilt
66f1fd2ad9 Switch user-supplied functions in C API to return int 2022-09-08 17:36:51 -04:00
Jay Berkenbilt
b0f054e600 Add ability to initialize Pl_Function with a C-style function 2022-09-08 17:35:27 -04:00
Jay Berkenbilt
5911a348a5 Fix TODO notes on multiple direct object parent issue 2022-09-08 11:47:48 -04:00
Jay Berkenbilt
18a583e8d9 Rename QPDFValueProxy back to QPDFObject
QPDFValueProxy wasn't a good name for it. We decided the evil of
having the header file be named QPDFObject_private.hh was less than
the evil of having the class be named something other than what it
should have been named.
2022-09-08 11:29:23 -04:00
Jay Berkenbilt
25ccc7eae4 Rename QPDFValueProxy.hh and QPDFValueProxy.cc
Preparing to change the class name back to QPDFObject
2022-09-08 11:19:49 -04:00
Jay Berkenbilt
c7a4967d10 Change reset to disconnect and clarify comments
I decided that it's actually fine to copy a direct object to another
QPDF. Even if we eventually prevent a QPDFObject from having multiple
parents, this could happen if an object is moved.
2022-09-08 11:06:15 -04:00
Jay Berkenbilt
dba61da1bf Create a special "destroyed" type rather than using null
When a QPDF is destroyed, changing indirect objects to direct nulls
makes them effectively disappear silently when they sneak into other
places. Instead, we should treat this as an error. Adding a destroyed
object type makes this possible.
2022-09-08 10:36:39 -04:00
Jay Berkenbilt
264e25f391 Clear owning QPDF information for all objects, not just indirect 2022-09-08 10:19:38 -04:00
Jay Berkenbilt
a615985865 Update QPDFObject with comment
Also, since it's just there for compatibility, we don't need to add
new object types to it.
2022-09-08 10:19:38 -04:00
Jay Berkenbilt
9dcd25a06e Remove superfluous call to resetObjGen 2022-09-08 10:19:38 -04:00
Jay Berkenbilt
4422588d7d Remove unneeded owning_qpdf from QPDFValue
The qpdf member was already sufficient. Removing this actually fixed a
few pre-existing issues around detecting foreign ownership and
allowing certain conditions to be warnings rather than exceptions.
2022-09-08 10:19:38 -04:00
Jay Berkenbilt
0132261ee0 Revert getOwningQPDF, and add getQPDF that returns a reference 2022-09-07 17:26:39 -04:00
Jay Berkenbilt
bac559559e Fix typo 2022-09-07 17:26:39 -04:00
Jay Berkenbilt
a0c32b1e8d Remove resolved TODO comment 2022-09-06 19:03:19 -04:00
Jay Berkenbilt
76cd7ea67a Clarify and improve QPDFPageObjectHelper::get*Box methods
Add copy_if_fallback and explain how it differs from copy_if_shared.
2022-09-06 19:00:40 -04:00
Jay Berkenbilt
c1def4ead4 Implement QPDFObjectHandle equality 2022-09-06 18:34:23 -04:00
Jay Berkenbilt
d12734d76f Remove lgtm since it's getting shut down
It might be worth enabling code scanning at GitHub, which is a
superset of lgtm.
2022-09-06 12:46:05 -04:00
Jay Berkenbilt
94c79bb8f6 Support --show-encryption without a valid password (fixes #598) 2022-09-06 12:45:12 -04:00
Jay Berkenbilt
7e07897106 Update spelling dictionary 2022-09-06 12:45:12 -04:00
Jay Berkenbilt
e3c1e1fbcb Validate RUNPATH of standalone Linux binaries in CI 2022-09-06 12:45:12 -04:00
Jay Berkenbilt
706e37a42c Move multiple direct owner notes in TODO 2022-09-06 12:45:06 -04:00
Jay Berkenbilt
259eec3a94 Clarify comments for QPDFObjectHandle::getOwningQPDF 2022-09-06 10:09:28 -04:00
Jay Berkenbilt
f95e0549cc Update documentation to clarify some limitations of qpdf JSON 2022-09-06 10:09:26 -04:00
Jay Berkenbilt
ed04b80caf Update internals documentation to reflect QPDFObject split 2022-09-05 18:54:02 -04:00
Jay Berkenbilt
55cc2ab680 Re-introduce QPDFObject.hh as deprecated
* Just removing a header file would cause build errors with no hint as
  to what happened. This way, people get a warning rather than error
  for the life of qpdf 11, and the warning tells them what to do.

* This avoids build surprises resulting from having two versions of
  QPDF headers installed at once. If you were building code out of a
  checkout of qpdf but had an older version installed on your system,
  if your code included <qpdf/QPDFObject.hh>, everything would work,
  but then your code would break without QPDFObject.hh later.
2022-09-05 18:52:59 -04:00
Jay Berkenbilt
6c61be00e8 Rename QPDFObject -> QPDFValueProxy
This is in preparation for restoring a QPDFObject.hh to ease the
transition on qpdf_object_type_e.

This commit was created by
* Renaming QPDFObject.cc and QPDFObject.hh
* Replacing QPDFObject\b with QPDFValueProxy (where \b is word
  boundary)
* Running format-code
* Manually resorting files in libqpdf/CMakeLists.txt
* Manually refilling the comment in QPDF.hh near class Resolver
2022-09-05 18:52:59 -04:00
Jay Berkenbilt
5d65e73ca7 TODO note about shared_ptr vs. unique_ptr 2022-09-05 18:52:59 -04:00
Jay Berkenbilt
0a7ba62b00 Update formatting a documentation from last PR 2022-09-05 18:52:59 -04:00
Jay Berkenbilt
1264f4733e
Merge pull request #756 from jbarlow83/unique-ptr
Use unique_ptr and move constructor for Buffer::Members
2022-09-05 17:25:35 -04:00
James R. Barlow
12967bdf8a Take advantage of unique_ptr and move construction for Buffer
Since Buffer has always implemented its copy constructor with a deep
copy, its Members object will never have multiple owners. Change to unique_ptr.

Also implement move constructors for Buffer, since there may be cases
where a deep copy is not needed.
2022-09-05 13:29:56 -07:00