2
1
mirror of https://github.com/qpdf/qpdf.git synced 2024-06-15 16:42:19 +00:00
Commit Graph

1529 Commits

Author SHA1 Message Date
m-holger
08d7b56746 Prevent destruction of shared null objects
#863 uses a single null object for nulls that were previously implicit. In
certain circumstances this shared null object gets destroyed (i.e changed
to a QPDF_Destroyed object) when a QPDF object is destroyed.

Modify the QPDF destructor so that null objects get disconnected from the
dying QPDF object but not destroyed to prevent this from happening.
2023-04-11 18:01:14 +01:00
m-holger
3f2ebf334b Fix bug in QPDF_Name::normalizeName introduced in #891
'#' was omitted from the list of chars that need to be escaped.
2023-04-04 15:54:54 +01:00
m-holger
41f79bedbc Add new functions qpdfjob_create_qpdf and qpdfjob_write_qpdf 2023-04-02 09:45:19 +01:00
m-holger
c78f44798a Add new _qpdf_data constructor taking a std::unique_ptr<QPDF>
Also, move _qpdf_data and to new header filer _qpdf_error to new header
file qpdf-c_impl.hh
2023-04-02 09:24:08 +01:00
m-holger
a2edf27b76 Initialize _qpdf_data members 2023-04-02 09:24:08 +01:00
Jay Berkenbilt
f8e39253be
Merge pull request #863 from m-holger/array
Refactor QPDF_Array
2023-04-01 11:05:07 -04:00
Jay Berkenbilt
40e4d1f97c
Merge pull request #930 from m-holger/throw
Code tidy re-throwing of exceptions
2023-04-01 09:42:52 -04:00
Jay Berkenbilt
5981b25e98
Merge pull request #932 from m-holger/wr_upo
Tune indentations in QPDFWriter::unparseObject
2023-04-01 09:37:55 -04:00
m-holger
0b53b648ab Refactor QPDF_Array::unparse 2023-04-01 13:58:21 +01:00
m-holger
c2ab0441b5 Refactor QPDF_Array::getJSON 2023-04-01 13:58:15 +01:00
m-holger
a7b6975132 Remove SparseOHArray 2023-04-01 13:58:06 +01:00
m-holger
d3f2dc322b Refactor QPDF_Array::copy 2023-04-01 13:57:47 +01:00
m-holger
a171ebb942 Refactor QPDF_Array::disconnect 2023-04-01 13:57:35 +01:00
m-holger
0aae54d383 Refactor QPDF_Array::setFromVector 2023-04-01 13:57:28 +01:00
m-holger
5072238867 Refactor QPDF_Array::getAsVector 2023-04-01 13:57:22 +01:00
m-holger
e186da1721 Remove SparseOHArray::at, setAt and append 2023-04-01 13:57:15 +01:00
m-holger
1c85e7ece4 Remove SparseOHArray::erase 2023-04-01 13:56:54 +01:00
m-holger
6295da436f Remove SparseOHArray::insert 2023-04-01 13:56:47 +01:00
m-holger
182c2480df Refactor QPDF_Array::setItem and rename to setAt 2023-04-01 13:56:29 +01:00
m-holger
4d37389bef Refactor QPDF_Array::eraseItem and rename to erase 2023-04-01 13:56:16 +01:00
m-holger
1bb23d0545 Refactor QPDF_Array::insertItem and rename to insert 2023-04-01 13:56:10 +01:00
m-holger
cedb37caa1 Refactor QPDF_Array::appendItem and rename to push_back 2023-04-01 13:55:14 +01:00
m-holger
c6179da961 Add new method QPDFValue::checkOwnership 2023-04-01 13:54:44 +01:00
m-holger
a1a8f35b63 Refactor QPDF_Array::getItem and rename to at 2023-04-01 13:54:17 +01:00
m-holger
51d350c98c Inline QPDF_Array::getNItems and rename to size 2023-04-01 12:25:15 +01:00
m-holger
e6db8ddeba Change SparseOHArray index type to int and elements type to map
There are no reasons other than historical to use size_t.
On balance, using map is more efficient. Hold shared pointers to
QPDFObjects rather than QPDFObjectHandles for consistencey with
QPDF_Array.
2023-04-01 12:25:06 +01:00
m-holger
ea5164938e Remove temporary OHArray 2023-04-01 12:24:52 +01:00
m-holger
9e30de8032 Remove temporary OHArray::erase, insert and copy 2023-03-29 13:15:39 +01:00
m-holger
0db65e7912 Remove temporary OHArray::disconnect and setAt 2023-03-29 13:06:26 +01:00
m-holger
1367226002 Remove temporary OHArray::at 2023-03-29 13:00:28 +01:00
m-holger
ad2875a4aa Remove temporary OHArray::size, append and remove_last
Also, add const overload of QPDFObjectHandle::getObj
2023-03-29 12:34:07 +01:00
m-holger
8fdc3f0964 Optimize QPDFParser for non-sparse QPDF_Arrays
Stop using nullptr to represent null objects.
Count null array elements and trigger creation of sparse arrays if null count is
greater than 100.
2023-03-29 12:10:19 +01:00
m-holger
18c1ffe0df Change underlying data structure of QPDF_Array in non-sparse mode to std::vector 2023-03-29 12:01:24 +01:00
m-holger
38cf7c1628 Add separate sparse mode to QPDF_Array
Add temporary clone of SparseOHArray  to implement non-sparse mode.
2023-03-29 11:48:21 +01:00
m-holger
de29fd56c4 Remove redundant QPDF_Array::addExplicitElementsToList 2023-03-29 10:47:37 +01:00
m-holger
5f4f553c35 Refactor QUtil::hex_decode 2023-03-23 20:25:42 +00:00
m-holger
0795b6952b Add new function QUtil::hex_decode_char 2023-03-23 20:23:37 +00:00
m-holger
ce66604290 Tune indentations in QPDFWriter::unparseObject
Set indent differently for qdf and non-qdf files.
Combine with preceding newline for qdf files.
2023-03-21 10:59:05 +00:00
Jay Berkenbilt
f89196b6c8
Merge pull request #814 from m-holger/check
Warn if catalog type entry is invalid (fixes #810)
2023-03-20 06:59:47 -04:00
m-holger
d8acccd5c8 Warn if catalog type entry is invalid (fixes #810) 2023-03-19 20:07:53 +00:00
m-holger
9c7aa2cbbd Code tidy re-throwing of exceptions
Avoid copying exceptions.
2023-03-19 17:27:39 +00:00
Jay Berkenbilt
fe36ef141c
Merge pull request #924 from cdosborn/main
Improve --optimize-images to find images nested within XObjects
2023-03-18 15:34:27 -04:00
Jay Berkenbilt
a2c7471e66
Merge pull request #920 from m-holger/fixqdf_rl
Refactor QdfFixer::processLines
2023-03-18 13:59:47 -04:00
Jay Berkenbilt
84e29026f5
Merge pull request #926 from m-holger/omap
Remove redundant parameter depth from QPDF::updateObjectMaps
2023-03-18 13:28:19 -04:00
Jay Berkenbilt
b480f7186f
Merge pull request #928 from m-holger/wr_og
Add new data member QPDFWriter::Members::root_og
2023-03-18 13:28:12 -04:00
m-holger
b7791566f6 Add new data member QPDFWriter::Members::root_og
Also, uninitialize QPDFWriter::Members members.
2023-03-17 11:19:48 +00:00
Connor Osborn
8de2497a8f Improve --optimize-images to find images nested within XObjects 2023-03-15 23:27:05 -04:00
m-holger
5af32b53a3 Remove redundant parameter depth from QPDF::updateObjectMaps 2023-03-15 17:50:17 +00:00
m-holger
43d9ee56ea Split QPDFJob::run into createQPDF and writeQPDF
Also, change QPDFJob to use unique_ptr<QPDF> instead of shared pointers.
2023-03-09 17:21:55 +00:00
m-holger
4ee6ff0a73 Add new procedure QUtil::read_file_into_string 2023-03-08 21:00:26 +00:00