Commit Graph

2723 Commits

Author SHA1 Message Date
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
Jay Berkenbilt 952b00aecd
Merge pull request #755 from m-holger/tidy3
Fix commit  805c1ad : Reset QPDFValue::qpdf and QPDFValue::og when ...
2022-09-04 11:26:44 -04:00
m-holger 9c86ba40d8 Fix commit 805c1ad : Reset QPDFValue::qpdf and QPDFValue::og when ...
On destruction of the QPDF object replace all indirect object references
with direct nulls.

Remove all existing code to release resolved references.

Fixes performance issue due to interaction of resetting QPDFValue::qpdf and
og members and prior code.
2022-09-04 10:41:18 +01:00
Jay Berkenbilt 6d2db68f2e Update comments in Constants.h 2022-09-02 14:43:29 -04:00
Jay Berkenbilt da32689350 TODO reminder about github discussions 2022-09-02 11:51:38 -04:00
Jay Berkenbilt a5ae042e2b Add workaround for bug in ghostscript 9.56 (fixes #732) 2022-09-02 11:51:38 -04:00
Jay Berkenbilt 31396f61c9 Disallow --empty with --replace-input (fixes #728) 2022-09-02 09:37:17 -04:00
Jay Berkenbilt fa15042ce9 Document decision not to remove raw QPDF pointers from the API 2022-09-02 09:22:57 -04:00