diff options
author | npm <npm@chromium.org> | 2016-11-04 12:54:51 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-11-04 12:54:51 -0700 |
commit | ec64cee9acccd0d1e574bbbd8aa91b08c1cf254f (patch) | |
tree | 1fe1ed80241bffe81cd34786785ef7db5a8494c6 /core/fpdfapi/parser/cpdf_indirect_object_holder.cpp | |
parent | 33fdebc3da676bff84d0fd0f69b9087c0c12dfeb (diff) | |
download | pdfium-ec64cee9acccd0d1e574bbbd8aa91b08c1cf254f.tar.xz |
Traverse PDF page tree only once in CPDF_Document Try 3
Now, we do not start traversal from where we were at, but from the top.
This makes the code less prone to bugs, as now there is no need to call
methods to recursively fix things. This will save a lot of time when
the trees are rather flat, as in the PDF file in the bug. It can still
be slow, for instance if we have a chain of page nodes, and the last
in the chain contains all of the pages (this is artificial).
Try 2 at https://codereview.chromium.org/2442403002/
Also added test where Try 2 would have failed.
Tested the pdf from the bug on my Mac:
With this CL: load in 21 seconds
Without this CL: did not load in 4 minutes, got tired of waiting
BUG=chromium:638513
Review-Url: https://codereview.chromium.org/2470803003
Diffstat (limited to 'core/fpdfapi/parser/cpdf_indirect_object_holder.cpp')
0 files changed, 0 insertions, 0 deletions