Commit Graph

557 Commits

Author SHA1 Message Date
Jay Berkenbilt 98dff46310 TODO updates 2023-01-07 15:25:05 -05:00
Jay Berkenbilt 434d84ece6 TODO note on digital signatures 2022-11-14 07:06:22 -05:00
Jay Berkenbilt b30273f174 Indicate that msvc64 is the default download for Windows 2022-10-08 17:28:35 -04:00
Jay Berkenbilt 741211a199 TODO reminders 2022-10-06 06:58:38 -04:00
Jay Berkenbilt 92b3543e12 Update TODO with notes about next major version
For greater visibility and community participation, track ABI change
ideas that aren't in the source in a github discussion item rather
than in TODO.
2022-09-22 07:57:52 -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 f1a2d3160a Add JSON v2 support to C API 2022-09-09 06:19:09 -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 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 a0c32b1e8d Remove resolved TODO comment 2022-09-06 19:03:19 -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 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 f95e0549cc Update documentation to clarify some limitations of qpdf JSON 2022-09-06 10:09:26 -04:00
Jay Berkenbilt 5d65e73ca7 TODO note about shared_ptr vs. unique_ptr 2022-09-05 18:52:59 -04:00
Jay Berkenbilt da32689350 TODO reminder about github discussions 2022-09-02 11:51:38 -04:00
Jay Berkenbilt fa15042ce9 Document decision not to remove raw QPDF pointers from the API 2022-09-02 09:22:57 -04:00
Jay Berkenbilt a59e7ac7ec Disable copying/assigning to QPDF objects, add QPDF::create() 2022-09-02 08:53:27 -04:00
Jay Berkenbilt a47b99953f Update TODO 2022-09-01 17:20:59 -04:00
Jay Berkenbilt 4f4b908605 Add a file with arrays with lots of nulls to the test suite
A bug was fixed between qpdf 8.4.2 and 9.0.0 regarding this type of
file (see #305 and #311), but it was necessary to retest after some
major refactoring work at the lexical and parsing layers. This lays
the groundwork for including this in performance benchmarks and in the
qpdf test suite rather than having to keep a large,
non-redistributable file around.

20 arrays of 20K nulls is plenty for performance memory testing and
doesn't take too long to run. Compared to qpdf 8.4.2, in qpdf 11.0.0,
the file generated here uses 3% of the RAM and runs over 4 times
faster.
2022-09-01 16:15:54 -04:00
Jay Berkenbilt 4aac7c325a Update TODO with reminders about memory testing 2022-08-31 14:47:27 -04:00
Jay Berkenbilt a3145ab3b7 TODO note 2022-08-28 16:25:44 -04:00
Jay Berkenbilt 980987ba65 TODO note about removing raw pointers from API 2022-08-28 09:40:07 -04:00
Jay Berkenbilt cef6425bca Disable QTC inside the library by default (fixes #714)
This results in measurable performance improvements to packaged binary
libqpdf distributions. QTC remains available for library users and is
still selectively enabled in CI.
2022-08-07 16:20:49 -04:00
Jay Berkenbilt da71dc6f37 QTC: cache get_env results for improved performance
It turns out that QUtil::get_env is particularly expensive on Windows
if there is a large environment. This may be true on other platforms
as well.
2022-08-07 14:23:05 -04:00
Jay Berkenbilt 7537391222 TODO: more reminders 2022-08-06 17:16:28 -04:00
Jay Berkenbilt 028f2811a0 Hide docs for special cmake release 2022-08-06 16:48:51 -04:00
Jay Berkenbilt 2e3664e1e4 Update qtest 1.9 and copy back into qpdf 2022-08-06 16:46:00 -04:00
Jay Berkenbilt 48dfae6443 TODO: rescope some items 2022-08-06 16:35:40 -04:00
Jay Berkenbilt 5d63730b93 Clean up documentation 2022-07-31 16:26:02 -04:00
Jay Berkenbilt 12d065c751 Provide a simpler QPDF::writeJSON 2022-07-31 16:23:17 -04:00
Jay Berkenbilt 13cf35ce2f Use calledgetallpages and pushedinheritedpageresources 2022-07-31 16:23:17 -04:00
Jay Berkenbilt 5f4224f31a Simplify --json-output
Now --json-output just changes defaults. Allow output file with --json.
2022-07-31 16:23:17 -04:00
Jay Berkenbilt 69820847af Change the output of --json to use "qpdf" instead of "objects" 2022-07-31 15:17:01 -04:00
Jay Berkenbilt d01c4f8819 Change --json-output format
from "qpdf-v2" to "qpdf": [..., ...]
2022-07-31 10:32:55 -04:00
Jay Berkenbilt bb96499b61 Update docs and prepare QPDF::writeJSON for changes
Add additional parameters that will be needed to call QPDF::writeJSON
in partial mode.
2022-07-31 10:32:55 -04:00
Jay Berkenbilt 4674c04cb8 JSON schema: support multi-element array validation 2022-07-24 16:44:51 -04:00
Jay Berkenbilt f8d1ab9462 JSON schema -- accept single item in place of array
When the schema wants a variable-length array, allow a single item as
well as allowing an array.
2022-07-24 16:17:03 -04:00
Jay Berkenbilt b3e6d445cb Tweak "AndGet" mutator functions again
Remove any ambiguity around whether old or new value is being
returned.
2022-07-24 15:42:23 -04:00
Jay Berkenbilt c810f0f21e TODO: QPDFObject parent idea 2022-06-27 12:49:46 -04:00
Jay Berkenbilt 0c7c7e4ba4 Track whether certain page modifying methods have been called
We need to know whether pushInheritedAttributesToPage or getAllPages
have been called when generating JSON output. When reading the JSON
back in, we have to call the same methods so that object numbers will
line up properly.
2022-06-25 13:55:45 -04:00
Jay Berkenbilt 25aff0bd52 TODO: abandon (again) and update notes about QPDFPagesTree 2022-06-25 13:26:53 -04:00
Jay Berkenbilt 272fb9de9d TODO reminder 2022-06-25 11:11:24 -04:00
Jay Berkenbilt bb0ea2f8e7 Add qpdfjob_register_progress_reporter 2022-06-19 08:46:58 -04:00
Jay Berkenbilt 87412eb05b Add QPDFJob::registerProgressReporter 2022-06-19 08:46:58 -04:00
Jay Berkenbilt 8e361d98f0 Add examples for output capture (fixes #691) 2022-06-19 08:46:58 -04:00