m-holger
266d479735
Refactor QPDF_Array::at
...
Change the return type to a std::pair<bool, QPDFObjectHandle> in order to
allow a default constructed object handle (which is currently returned to
indicate failure) to become a valid object.
2024-09-17 09:59:00 +01:00
m-holger
64f9b7b242
Refactor QPDFObjectHandle::getTypeName
2024-08-27 10:39:33 +01:00
m-holger
9641626cae
Refactor resolving of objects
2024-06-19 10:34:01 +01:00
m-holger
9589fad1e5
Reimplement QPDFObjectHandle::getJSON in terms of writeJSON
2024-02-16 11:00:20 +00:00
m-holger
e2737ab646
Add new writeJSON methods
...
Create an alternative to getJSON to allow an object handle to be written as JSON without the overhead of creating a JSON object.
2024-02-16 10:51:25 +00:00
Jay Berkenbilt
7caa9ddf5a
Format code
2024-02-04 16:12:01 -05:00
Jay Berkenbilt
ebb10f3256
Fix null pointer issue on array copy
2024-01-12 08:05:22 -05:00
m-holger
5e9de5cd50
Tune handling of sparse arrays in QPDF_Array
...
Sparse arrays are rare. Dynamically create the variables needed to manage
them only when needed.
2024-01-10 09:36:18 +00:00
m-holger
7bc0f1d828
Code tidy - Clang-Tidy rule modernize-use-emplace
2023-06-09 15:42:11 +01:00
m-holger
3c5700c255
Code tidy - reflow comments and strings
2023-06-02 16:00:40 +01:00
Jay Berkenbilt
60965d5f4d
Rerun clang-format
2023-05-21 13:35:09 -04:00
m-holger
41ec7eda54
Use auto when initialializing with new
2023-05-20 15:41:40 +01: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
8391022416
Avoid inserting direct null objects into olist
2022-12-31 14:37:35 -05:00
m-holger
9da50ca360
Change olist variable in QPDFParser::parse to vector<shared_ptr<QPDFObject>>
2022-12-31 14:37:35 -05:00
m-holger
b1eb1a9584
Refactor QPDFObjectHandle::copyObject1
2022-11-20 12:07:22 -05:00
m-holger
dbc5f07b90
Rename QPDFObject::shallowCopy to copy
...
Add optional parameter shallow. Change logic errors to runtime errors.
2022-11-20 12:07:22 -05: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
264e25f391
Clear owning QPDF information for all objects, not just indirect
2022-09-08 10:19:38 -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
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
m-holger
c7005e8a6d
Remove virtual methods QPDFValue::getTypeCode and getTypeName
2022-09-01 14:29:02 +01:00
m-holger
431bd666c0
Split QPDFObject into QPDFObject and QPDFValue
2022-09-01 14:19:34 +01:00