summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--TODO7
-rw-r--r--manual/qpdf-manual.xml8
3 files changed, 16 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 5de76343..cf51c5b3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2019-08-17 Jay Berkenbilt <ejb@ql.org>
+
+ * Change internal implementation of QPDF arrays to use sparse
+ arrays, which results in using much less memory for arrays with
+ large numbers of nulls. Various files have been encountered in the
+ wild that contains thousands of arrays with millions of nulls.
+ Fixes #305, #311.
+
2019-07-03 Jay Berkenbilt <ejb@ql.org>
* Non-compatible API change: change
diff --git a/TODO b/TODO
index f79b0ae4..a80fcebc 100644
--- a/TODO
+++ b/TODO
@@ -1,10 +1,3 @@
-Performance
-===========
-
-There is some performance problem that happens with some large files.
-Issues 305 and 311 both seem to be examples of this. Files saved in
-../misc/bugs.
-
Fuzz Errors
===========
diff --git a/manual/qpdf-manual.xml b/manual/qpdf-manual.xml
index d5ad6466..e2544cb9 100644
--- a/manual/qpdf-manual.xml
+++ b/manual/qpdf-manual.xml
@@ -4482,6 +4482,14 @@ print "\n";
</listitem>
<listitem>
<para>
+ The underlying implementation of QPDF arrays has been
+ enhanced to be much more memory efficient when dealing with
+ arrays with lots of nulls. This enables qpdf to use
+ drastically less memory for certain types of files.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
A new helper method
<function>QUtil::read_file_into_memory</function> was added.
</para>