aboutsummaryrefslogtreecommitdiffstats
path: root/TODO
diff options
context:
space:
mode:
Diffstat (limited to 'TODO')
-rw-r--r--TODO52
1 files changed, 20 insertions, 32 deletions
diff --git a/TODO b/TODO
index 645b5d1f..d46a2821 100644
--- a/TODO
+++ b/TODO
@@ -8,29 +8,6 @@ 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
@@ -42,10 +19,6 @@ Pending changes:
appimage build specifically is setting the runpath, which is
actually desirable in this case. Make sure to understand and
document this. Maybe add a check for it in the build.
-* Make job JSON accept a single element and treat as an array of one
- when an array is expected. This allows for making things repeatable
- in the future without breaking compatibility and is needed for the
- remote-attachment fix to be backward-compatible.
* Decide what to do about #664 (get*Box)
* Add an option --ignore-encryption to ignore encryption information
and treat encrypted files as if they weren't encrypted. This should
@@ -70,6 +43,26 @@ Pending changes:
about the case of more than 65,536 pages. If the top node has more
than 256 children, we'll live with it.
+Parent pointer idea:
+
+* 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.
+
Soon: Break ground on "Document-level work"
@@ -131,11 +124,6 @@ JSON v2 fixes
compatibility, but at least this gives people a namespace they can
know will never conflict with future keys.
- * Change schema validation so that if the schema contains an array
- with more than one element, the output has to have an array with
- the same number of elements whose individual elements are
- validated according to the regular rules.
-
* When reading back in, we'll have to call
pushInheritedAttributesToPage or getAllPages based on the values
of the metadata.