mirror of
https://github.com/qpdf/qpdf.git
synced 2024-06-05 03:40:53 +00:00
TODO: QPDFObject parent idea
This commit is contained in:
parent
db8a02c20e
commit
c810f0f21e
23
TODO
23
TODO
|
@ -8,6 +8,29 @@ Before Release:
|
|||
* Stay on top of https://github.com/pikepdf/pikepdf/pull/315
|
||||
* Release qtest with updates to qtest-driver and copy back into qpdf
|
||||
|
||||
Parent pointer idea:
|
||||
|
||||
* Have replaceKey, removeKey, and eraseItem return the old values. The
|
||||
comments will clarify the difference between these and the andGet
|
||||
versions.
|
||||
* Add std::weak_ptr<QPDFObject> parent to QPDFObject. When adding a
|
||||
direct object to an array or dictionary, set its parent. When
|
||||
removing it, clear the parent pointer.
|
||||
* When a direct object that already has a parent is added to
|
||||
something, it is a warning and will become an error in qpdf 12.
|
||||
There needs to be unsafe add methods used by unsafeShallowCopy.
|
||||
These will add but not modify the parent pointer.
|
||||
|
||||
This allows an object to be moved from one object to another by
|
||||
removing it, which returns the now orphaned object, and then inserting
|
||||
it somewhere else. It also doesn't break the pattern of adding a
|
||||
direct object to something and subsequently mutating it. It just
|
||||
prevents the same object from being added to more than one thing.
|
||||
|
||||
Note that arrays and dictionaries still need to contain
|
||||
QPDFObjectHandle because of indirect objects. This only pertains to
|
||||
direct objects, which are always "resolved" in QPDFObjectHandle.
|
||||
|
||||
Next:
|
||||
* JSON v2 fixes
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user