Commit a800b4eaa125f424fb6fc6868a64a020a22aa7fb
1 parent
218900d2
updated ChangeLog
git-svn-id: svn+q:///qpdf/trunk@947 71b93d88-0707-0410-a8cf-f5a4172ac649
Showing
2 changed files
with
41 additions
and
0 deletions
ChangeLog
| 1 | +2010-03-27 Jay Berkenbilt <ejb@ql.org> | |
| 2 | + | |
| 3 | + * libqpdf/QPDF_optimization.cc (flattenScalarReferences): Flatten | |
| 4 | + scalar references for unreferenced objects as well as those seen | |
| 5 | + during traversal of the file. This matters when preserving object | |
| 6 | + streams that contain unreferenced objects with indirect scalars. | |
| 7 | + (Fixes qpdf-Bugs-2974522.) Updated TODO with a description of a | |
| 8 | + possibly better fix involving removal of flattenScalarReferences. | |
| 9 | + | |
| 10 | + * libqpdf/Pl_AES_PDF.cc (finish): Don't complain if an AES input | |
| 11 | + buffer is not a multiple of 16 bytes. Instead, just pad with | |
| 12 | + nulls and hope for the best. PDF files have been encountered "in | |
| 13 | + the wild" that contain AES buffers that aren't a multiple of 16 | |
| 14 | + bytes. | |
| 15 | + | |
| 1 | 16 | 2010-01-24 Jay Berkenbilt <ejb@ql.org> |
| 2 | 17 | |
| 3 | 18 | * 2.1.2: release | ... | ... |
TODO
| ... | ... | @@ -15,6 +15,32 @@ |
| 15 | 15 | General |
| 16 | 16 | ======= |
| 17 | 17 | |
| 18 | + * See whether it's possible to remove the call to | |
| 19 | + flattenScalarReferences. I can't easily figure out why I do it, | |
| 20 | + but removing it causes strange test failures in linearization. I | |
| 21 | + would have to study the optimization and linearization code to | |
| 22 | + figure out why I added this to begin with and what in the code | |
| 23 | + assumes it's the case. For enqueueObject and unparseChild in | |
| 24 | + QPDFWriter, simply removing the checks for indirect scalars seems | |
| 25 | + sufficient. | |
| 26 | + | |
| 27 | + To pursue this, remove the call to flattenScalarReferences in | |
| 28 | + QPDFWriter.cc and disable the logic_error exceptions for indirect | |
| 29 | + scalars. Just search for flattenScalarReferences in QPDFWriter.cc | |
| 30 | + since the logic errors have comments that mention | |
| 31 | + flattenScalarReferences. Then run the test suite. Several files | |
| 32 | + that explicitly test flattening of scalar references fail, but the | |
| 33 | + indirect scalars are properly preserved and written. But then | |
| 34 | + there are some linearized files that have a bunch of unreferenced | |
| 35 | + objects that contain scalars. Need to figure out what these are | |
| 36 | + and why they're there. Maybe they're objects that used to be | |
| 37 | + stream lengths. Probably we just need to make sure don't traverse | |
| 38 | + through a stream's /Length stream when enqueueing stream | |
| 39 | + dictionaries. | |
| 40 | + | |
| 41 | + If flattenScalarReferences is removed, a new method will be needed | |
| 42 | + for checking PDF files. | |
| 43 | + | |
| 18 | 44 | * For debugging linearization bugs, consider adding an option to save |
| 19 | 45 | pass 1 of linearization. This code is sufficient. Change the |
| 20 | 46 | interface to allow specification of a pass1 file, which would | ... | ... |