aboutsummaryrefslogtreecommitdiffstats
path: root/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog33
1 files changed, 23 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index 1fddfe4f..1b0e3fc4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,28 @@
2022-07-24 Jay Berkenbilt <ejb@ql.org>
+ * include/qpdf/JSON.hh: Schema validation: allow a single item to
+ appear anywhere that the schema has an array of a single item.
+ This makes it possible to change an element of the schema from an
+ item to an array to allow the data to accept an array where a
+ single value was previously required. This change is needed to
+ allow QPDFJob JSON to start accepting multiple items where a
+ single item used to be expected without breaking backward
+ compatibility. Without this change, the earlier fix to
+ removeAttachment would be a breaking change. Also allow the schema
+ to contain a multi-element array, which means that the output has
+ to have an array of the same length in the corresponding location,
+ and each element is validated against the corresponding schema
+ element.
+
+ * QPDFObjectHandle: for the methods insertItem, appendItem,
+ eraseItem, replaceKey, and removeKey, add a corresponding
+ "AndGetNew" and/or "AndGetOld" methods. The ones that end with
+ "AndGetNew" return the newly added item. The ones that end with
+ "AndGetOld" return the old value. The AndGetNew methods make it
+ possible to create a new object, add it to an array or dictionary,
+ and get a handle to it all in one line. The AndGetOld methods make
+ it easier to retrieve an old value when removing or replacing it.
+
* Thanks to m-holger for doing significant cleanup of private APIs
and internals around QPDFObjGen and for significantly improving
the performance of QPDFObjGen -- See #731. This includes a few
@@ -168,16 +191,6 @@
128-bit without AES) an error rather than a warning when
--allow-weak-crypto is not specified. Fixes #576.
-2022-04-29 Jay Berkenbilt <ejb@ql.org>
-
- * QPDFObjectHandle: for the methods insertItem, appendItem,
- eraseItem, replaceKey, and removeKey, add a corresponding "AndGet"
- method (insertItemAndGet, appendItemAndGet, eraseItemAndGet,
- replaceKeyAndGet, and removeKeyAndGet) that returns the newly
- inserted, replaced, or removed item. This makes it possible to
- create a new object, add it to an array or dictionary, and get a
- handle to it all in one line.
-
2022-04-24 Jay Berkenbilt <ejb@ql.org>
* Bug fix: "removeAttachment" in the job JSON now takes an array